Basic Encoding Rules: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 162:
===== INTEGER Positivi =====
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>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>V = 250_{10} = 0xFA = 0x00FA = 0000000011111010_2</math>. COme si puo' notare, aggiungendo gli zeri in testa il ''bit segno'' è correttamente zero.
===== INTEGER Negativi =====
Line 171 ⟶ 174:
* si calcola il ''Complemento a uno'' cioè si nega bit a bit
* si aggiunge infine al numero ottenuto <math>+ 1_2</math> </br>
Ad esempio se valore = -100 si ha:
Line 177 ⟶ 181:
* aggiungere <math>+ 1_2</math>. Si ottine <math>10011011_2 + 1_2 = 10011100_2</math></br>
Quindi <math>V = 10011100_2 = 0x9C</math></br></br>
Se invece valore = -250 si ha:
* <math>\left |valore \right | = 250_{10} = 0000000011111010_2</math> <small>(vedi es. INTEGER Positivi)</small>
|