Dato un buffer di dati (sequenza di byte), questa funzione esegue il calcolo del CRC16 in base al polinomio e al valore CRC iniziale specificati.
Sintassi |
u16 crc16_be (string strData, i32 nCount [, u16 initVal=0xFFFF] [, u16 polin=0xA001]) |
||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
strData |
Stringa oppure array, dei quali si vuole calcolare il CRC16. Il calcolo del CRC avviene comunque a byte, indipendentemente dal tipo specificato per la variabile data. |
||||||||||||||||||||||||||||||||
nCount |
È il numero di byte di strData su cui eseguire il calcolo. |
||||||||||||||||||||||||||||||||
initVal |
Valore iniziale del CRC. (opzionale, default 0xFFFF) |
||||||||||||||||||||||||||||||||
polin |
Valore del polinomio usato nel calcolo del CRC. (opzionale, default 0xA001) Principali polinomi utilizzati dai diversi CRC:
Casi frequenti:
|
||||||||||||||||||||||||||||||||
Risultato |
Rende il valore del CRC calcolato. |
||||||||||||||||||||||||||||||||
Validità |
Rule, Task. |
||||||||||||||||||||||||||||||||
Note |
Chiamando ripetutamente la funzione con valore iniziale uguale al valore del CRC calcolato, si può eseguire il calcolo incrementale del CRC di un buffer di lunghezza qualsiasi. NOTA: Le precedenti funzioni crc16 e crc16_init sono deprecate, ma rimangono per compatibilità. |
Il calcolo viene effettuato secondo l'algoritmo Big Endian.
Differisce dall'algoritmo crc16_le() perchè si effettua uno shift del CRC in elaborazione a sinistra anzichè a destra e perchè il byte di dati viene inserito nella parte alta anzichè bassa della word su cui si esegue il calcolo.
Esempio di utilizzo:
|