2013-03-17 7 views

risposta

21

Con sistemi di numero decimale, ciascuna posizione numero (o colonna) rappresenta (legge un numero da destra a sinistra): unità (che è 10^0), decine (cioè 10^1), centinaia (cioè 10^2), ecc.

Con numeri binari senza segno, la base è 2, quindi ogni posizione diventa (di nuovo, lettura da destra a sinistra): 1 (cioè 2^0), 2 (cioè 2^1), 4 (cioè 2^2), ecc

Ad esempio

Nel complemento a due complementi il ​​bit più significativo (MSB) diventa negativo. Pertanto rappresenta il segno numerico: '1' per un numero negativo e '0' per un numero positivo.

Per un numero a tre bit righe terrebbe questi valori:

-4, 2, 1 
0 0 1 => 1 
1 0 0 => -4 
1 0 1 => -4 + 1 = -3 

Il valore dei bit detenuti da un punto fisso sistema (frazionaria) è invariato. valori di colonna seguono lo stesso motivo come prima, base (2) per una potenza, ma con potenza ad andamento negativo:

2^2 (4), 2^1 (2), 2^0 (1) . 2^-1 (0.5), 2^-2 (0.25), 2^-3 (0.125) 

-1 saranno sempre 111.000
-0.5 aggiungere 0,5 ad esso: 111.100

Nel tuo caso 110100.10 equivale a -32 + 16 + 4 + 0,5 = -11,5. Quello che hai fatto è stato creare -12 quindi aggiungere 0,5 anziché sottrarre 0,5.

quello che realmente vuole è -32 + 16 + 2 + 1 + 0,5 = -12,5 = 110011.1

3

è possibile raddoppiare il numero ancora e ancora fino a quando non è un numero intero negativo o raggiunge un limite definito e quindi impostare il punto decimale in modo corrispondente.

-25 è 11.100.111, così -12.5 è 1110011,1

1

Così, U vuole rappresentare -12.5 nella rappresentazione complemento a 2

12,5: -> > 01100,1

complemento a 2 di (01.100,1): - >> 10011,1

verificare le ans verificando la proprietà code ponderato delle 2 di rep complemento risentimento (il peso MSB è -ve). otterremo -16 + 3 + .5 = -12.5

Problemi correlati