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

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;
y a t il un operateur tout fait pour diviser et faire un AND en base 16
Un librairie, classe.

Cordialement