Two's complement problem
Last Updated: Sep 25 2016 23:18, Started by
koni2007
, Sep 25 2016 12:44
·
0
#1
Posted 25 September 2016 - 12:44
Salut,
am o nelamurire si anume: Cum reprezint un intreg negativ in binar prin metoda two's complement? Mai concret -32. Dupa rationamentul meu: 32 = 0000 0000 0000 0000 0000 0000 0010 0000 Inversul este : 1111 1111 1111 1111 1111 1111 1101 1111 + 1 ------------------------------------------------------------------------------------- = rezultatul in binar ar trebui sa fie -32 ? E corect rationamentul? |
#3
Posted 25 September 2016 - 14:05
si cum ar arata numarul in binar ? Ma incurc cand e vorba de transport
Dupa metoda [ https://www.youtube-nocookie.com/embed/zWWWZJ_w2CA?feature=oembed - Pentru incarcare in pagina (embed) Click aici ] -32 = 1111 1111 1111 1111 1111 1110 1110 0000 32 = 0000 0000 0000 0000 0000 0000 0010 0000 Edited by koni2007, 25 September 2016 - 14:12. |
#4
Posted 25 September 2016 - 14:38
dupa site http://superuser.com...cimal-to-binary
exista si one's complement !!!! M-a bagat in ceata complet. De ce range-ul la two's complement este mai larg decat la one's complement. Ce metoda se aplica in Java? Edited by koni2007, 25 September 2016 - 14:53. |
#5
Posted 25 September 2016 - 15:45
S-au inventat pentru a nu trebui sa reprezinti si 0 si -0 care matematic inseamna acelasi lucru.
Cine a dezvoltat procesorul sub care rulezi codul a decis ce metoda sa se aplice, nu-i decizia lui Java. |
#6
Posted 25 September 2016 - 23:18
In JVM nr. intregi cu semn se reprezinta in complement de 2. Nu cred ca JVM ruleaza pe un sistem care sa reprezinte nr. intregi negative altfel decat in c. de 2 (daca or mai fi existand astfel de masini, dar orice e posibil prin pivnitele marilor corporatii).
Folosirea complement de 2 e o tehnica avantajoasa pentru ca: 1. Adunarea sau inmultirea unui numar pozitiv cu un numar negativ se poate face cu un sumator/inmultitor obisnuit pt. numere fara semn, numerele negative reprezentate in c. de 2 nu trebuie tratate in vre-un fel special. 2. Nu este necesara implementarea unui circuit dedicat pt. operatia de scadere a doua numere. Scazatorul se poate trece printr-un circuit care il transforma intr-un complement de 2 si aceasta valoare este "adunata" la descazut de un circuit sumator. 3. Compararea a 2 numere se poate face cu un circuit electronic simplu, nu e nevoie sa tratezi special cazul de +0 si -0, pt. ca in complement de 2 ai doar un singur 0. 4. Pe n biti se pot reprezenta 2n valori. Complement de 2 are un singur tip de 0, fata de complement de 1 sau reprezentarea cu bit de semn, care au +0 si -0. Renuntand la -0, in c. de 2 se poate reprezenta pe acelasi numar de biti inca o valoare in plus: -2n-1 Edited by andrei_0, 25 September 2016 - 23:34. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users