Bonjour
Je dois calculer un CRC pour envoyer une trame.
Le crc est défini comme suis
chkh = 30h + sum / 16 (MSB nibble)
chkl = 30h + sum AND 15 (LSB nibble)
un exemple sum fait AD
le C# par l’opérateur '/' me donne 0x10 (A) alors que je devrais trouver 7.
l'operateur & me donne (D) au lieu de 5
y a t il un operateur tout fait pour diviser et faire un AND en base 16
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 buffer = new byte[7]; buffer[0] = 0x02; buffer[1] = address; buffer[2] = 0x46; buffer[3] = 0x31; buffer[4] = 0x03; sum = (byte)(buffer[0] + buffer[1] + buffer[2] + buffer[3] + buffer[4]); buffer[5] = (byte) (0x30 + (sum/16)); buffer[6] = (byte) (0x30 + (sum & 15)); // resultat base 16 // buffer[5] = 0x37; // buffer[6] = 0x35;
Un librairie, classe.
Cordialement
Partager