bonjour a tous,
je suis débutant en C, quelqu'un peut m'expliquer ce que donne l'affectation d'un hexa a un élément d'un tableau:
Merci d'avance:DCode:
1
2
3
4 uc[0] = 0x01; uc[1] = 0x00; uc[2] = 0x00;
Version imprimable
bonjour a tous,
je suis débutant en C, quelqu'un peut m'expliquer ce que donne l'affectation d'un hexa a un élément d'un tableau:
Merci d'avance:DCode:
1
2
3
4 uc[0] = 0x01; uc[1] = 0x00; uc[2] = 0x00;
j'ai pas compris la question ...
en tout cas c'est strictement equivalent a:
Code:
1
2
3
4 uc[0] = 1; uc[1] = 0; uc[2] = 0;
Comment est déclaré le tableau uc ?
Code:unsigned char uc[26112+45+4+12+2];
un peu bizarre la taille de ton tableau!!!Citation:
Envoyé par débutant_en_C
Pour répondre à ta question, le C reconnait 3 manières d'exprimer des constantes entières:
en base 10:
en base 8:Code:
1
2 i = valeurDecimale;
en base 16:Code:
1
2 i = 0valeurOctale;
Voilà!Code:
1
2 i = 0xvaleurHexadecimale;
Ca ne me choque pas. Ca peut correspondre très précisément à la spec...Citation:
Envoyé par joellel
C'est pas "un hexa". C'est une expression constante représentée en hexadécimale. Le résultat est strictement idendique à (décimal)Citation:
Envoyé par débutant_en_C
ou (octal)Code:
1
2
3
4 uc[0] = 1; uc[1] = 0; uc[2] = 255;
en admettant que le type est bien unsigned char...Code:
1
2
3
4 uc[0] = 01; uc[1] = 0; uc[2] = 0377; /* corrigaid */
C'est vrai... J'aurais quand même préféré unCitation:
Ca ne me choque pas. Ca peut correspondre très précisément à la spec...
ou alors mieux, avec des noms explicites:Code:
1
2#define TAILLE (26112+45+4+12+2)
Code:
1
2
3
4
5 #define T_EXPLICITE1 26112 #define T_EXPLICITE2 45 etc... unsigned char uc[T_EXPLICITE1 +T_EXPLICITE2 +etc...];
Emmanuel : 0777 n'est pas égal à 255. Je suppose que tu voulais dire 0377.
Oui, je corrige. Merci...Citation:
Envoyé par Médinoc
Ah ces vieux, ils ne savent plus compter...
3 + 3 = 6
6 + 2 = 8.
OK.