Basic Encoding Rules: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 162:
In questo caso la codifica è data dal valore binario del numero, a patto che si rispetti il ''bit segno'', altrimenti bisogna aggiungere in testa un byte di zeri</br>
 
Infatti se l'integer è ad es. 100 allora si ha: <math>valore =100 \to V = 100_{10} = 0x64 = 01100100_2</math>. In questo caso il ''bit segno'' è zero e quindi la codifica è corretta.</br>
 
Se invece l'integer è ad es. 250 allora si ha: <math>V = 250_{10} = 0xFA = 11111010_2</math>. In questo caso il ''bit segno'' è 1 e quindi in fase di decodifica rappresenterebbe un numero negativo, vanno quindi aggiunti gli zeri in testa. In definitiva <math>valore =250 \to V = 250_{10} = 0xFA = 0x00FA = 0000000011111010_2</math>. COme si puo' notare, aggiungendo gli zeri in testa il ''bit segno'' è correttamente zero.
 
 
Riga 179:
* complemento a 1: <math>01100100_2 -> 10011011_2</math>
* aggiungere <math>+ 1_2</math>. Si ottine <math>10011011_2 + 1_2 = 10011100_2</math></br>
Quindi <math>valore = -100 \to V = 10011100_2 = 0x9C \,\!</math></br></br>
 
 
Riga 186:
* complemento a 1: <math>0000000011111010_2 -> 1111111100000101_2</math>
* aggiungere <math>+ 1_2</math>. Si ottine <math>1111111100000101_2 + 1_2 = 1111111100000110_2</math></br>
Quindi <math>valore = -250 \to V = 1111111100000110_2 = 0xFF06\,\!</math></br></br>