Basic Encoding Rules: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 45:
==== Primo byte di T ====
Vediamo qui sotto come si presenta il primo byte di T:
[[immagine:BERPrimobyte_T.JPG |thumb
La codifica di CLASS segue la seguente tabella:
Riga 128:
Il limite di 127 bytes è dato dal fatto che 127 è 0x7F in esadecimale (01111111 in binario) e quindi il primo bit di ''L'' è sicuramente zero.
Ciò è utile in fase di Decoding, infatti se il primo bit è zero, significa che è stata usata la codifica di L su un solo byte.
[[immagine:Short_Defined_Form_L.JPG |thumb
===== Caso 2: ''L'' in più bytes ''long definite form'' =====
In questo caso si procede nel seguente modo:
Riga 139:
*aggiungendo 0x80 si pone il primo bit del primo byte di L ad essere 1.
*aggiungendo 0x01 si ha che nei primi 7 bits del primo byte di ''L'' c'è in realtà la lunghezza di ''L'' in termini di byte, infatti <math>Len(Len(V))+ 1\,\!</math> indica proprio la lunghezza di L </br>
[[immagine:Long_Defined_Form_L.JPG |thumb|
In fase di Decoding per capire che stiamo usando una codifica di L su più bytes di tipo ''long definite form'' deve quindi essere:
*il primo bit del primo byte di ''L''= 1
Riga 149:
''V'' è codificato su 1000 bytes.</br> Poichè <math>1000>127</math> deve essere quindi usata la ''long definite form''</br>Quindi:
#<math>Len(V)= 1000_10 = 0x3E8 = 0x03E8</math>
#<math>Len(Len(V)) =
#<math>byte 1 di L = Len(Len(V)) + 0x81 = 0x83 = 10000011_2</math>
#<math>bytes 2,3 di L =
In definitiva:<math>L = 0x8303E8</math> ed è di <math>Len(Len(V)) + 1 = 2 + 1 = 3 bytes</math>
=== Codifica di V ===
|