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|400px300px|center|Primo byte di T]]
 
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|500px300px|center|L in Short Defined Form]]</br>
===== 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|500px700px|center|L in ShortLong Defined Form]]</br>
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
*gli altri 7 bit del primo byte devono essere <math>\ne 0b0000000</math>
 
===== Esempio 1 di Codifica di L in ''definite form'' =====
''V'' è codificato su 120 bytes.</br> Poichè <math>120<127</math>allora deve essere quindi usata la ''short definite form''</br>In definitiva:<math>L = 0x78</math>
===== Esempio 2 di Codifica di L in ''definite form'' =====
''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<sub>10</sub> = 0x3E8 = 0x03E8</math>
#<math>Len(Len(V)) = 2<sub>10</sub> = 0x02<math>
#<math>byte 1 = Len(Len(V)) + 0x81 = 0x83 = 10000011<sub>2</sub><math>
#bytes 2,3 = ''Len(V)'' = 0x03E8</br>
In definitiva:<math>L = 0x8303E8</math>
 
=== Codifica di V ===