Basic Encoding Rules: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Collegamento a: "codifica" |
Errore nella condizione del campo length Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile |
||
(7 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1:
{{W|informatica|ottobre 2023}}
'''Basic Encoding Rules''' (abbreviazione '''BER''') è un sistema di [[Codice (teoria dell'informazione)|codifica]] composto da una serie di regole per la conversione di dati eterogenei in flussi di [[byte]].
Riga 11 ⟶ 13:
Quindi ad esempio per codificare il dato 7 come INTERO occorreranno 3 bytes:
*il primo che indica il ''Type'' (INTERO = 02₁₆);
*il terzo è la codifica del dato INTERO secondo le regole BER (in questo caso 07₁₆);▼
*il secondo che indica la ''Length'' di v (in questo caso = 01₁₆).
▲*il terzo è la codifica del dato INTERO secondo le regole BER (in questo caso 07₁₆);
In definitiva INTEGER 7 in BER diviene 020107₁₆ dove si distinguono chiaramente T,L e V.
Riga 20 ⟶ 22:
Come si può immaginare la codifica di V dipende dal tipo T.
Ci sono alcuni tipi predefiniti in ASN.1 (si dice che sono ''Tag appartenenti alla Class UNIVERSAL'').
Per maggiori informazioni a tal proposito consultare [https://web.archive.org/web/20081205052919/http://www.oss.com/asn1/booksintro.html OSS Nokalva - Books Overview].
== Codifica BER ==
Riga 74 ⟶ 76:
Ad es. se ID = 250 in base 10, allora:
#<math>250_{10} = FA_{16} = 11111010_2</math>
#<math>11111010 -> 1
#<math>1
In definitiva ID = 250 viene codificato con <math>81FA_{16}</math>
Riga 113 ⟶ 115:
==== Encoding di L 'definite length' ====
In questo tipo di encoding si distinguono 2 casi distinti:
#se <math>Len(V)<=127</math> allora ''L'' viene codificato in 1 byte (''short definite form'')
#se <math>Len(V)>
===== Caso 1: ''L'' in 1 byte - ''short definite form'' =====
Riga 166 ⟶ 168:
=== Codifica di V ===
La codifica di ''V'', come è stato più volte detto, dipende dal tipo ''T'' e dalla sua definizione tramite sintassi [[ASN.1]] In questa sede sarà illustrata la codifica dei 3 tipi principali: INTEGER, OCTECT STRING e OBJECT ID. Per una panoramica completa di codifica decodifica si rimanda ancora a [https://web.archive.org/web/20081205052919/http://www.oss.com/asn1/booksintro.html OSS Nokalva - Books Overview] o [https://web.archive.org/web/20081205052919/http://www.oss.com/asn1/booksintro.html OSS Nokalva - Books Overview]
==== Codifica di ''INTEGER'' ====
Riga 188 ⟶ 190:
* <math>\left |valore \right | =\left |-100 \right | = 100_{10} = 01100100_2</math> <small>(vedi es. INTEGER Positivi)</small>
* complemento a 1: <math>01100100_2 -> 10011011_2</math>
* aggiungere <math>+ 1_2</math>. Si
Quindi <math>valore = -100 \to V = 10011100_2 = 9C_{16} </math>
Riga 226 ⟶ 228:
* [[Simple Network Management Protocol]]
* [[Lightweight Directory Access Protocol]]
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
{{Portale|Informatica}}
|