A voir également:
- Format bianaire en C
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Hp usb disk storage format tool - Télécharger - Stockage
- Format apfs - Guide
- Format bin - Guide
5 réponses
Euh ben c'est sur cette page qu'il parlent des masques binaires, non ? Si tu peux faire du c++, tu peux essayer un std::vector<bool>, mais c'est moins pratique qu'une vraie variable binaire...
Ceci dit j'ai cherché une notation en 0b et j'ai rien trouvé... à ce demander si ca existe ;o))
Sinon tu ne peux pas travailler en hexa ?
Ceci dit j'ai cherché une notation en 0b et j'ai rien trouvé... à ce demander si ca existe ;o))
Sinon tu ne peux pas travailler en hexa ?
Salut,
typedef union myUnion{
typedef struct myStruct{
unsigned var1:1; //nombre de bits
unsigned var2:1;
unsigned var3:1;
unsigned var4:1;
unsigned var5:1;
unsigned var6:1;
unsigned var7:1;
unsigned var8:1;
}struct1;
unsigned char octet;
} union1;
//tu definis bit à bit ta variable octet
union1.var1 = 0;
union1.var2 = 1;
union1.var3 = 0;
union1.var4 = 1;
union1.var5 = 1;
union1.var6 = 1;
union1.var7 = 0;
union1.var8 = 0;
//union1.octet contient 01011100
typedef union myUnion{
typedef struct myStruct{
unsigned var1:1; //nombre de bits
unsigned var2:1;
unsigned var3:1;
unsigned var4:1;
unsigned var5:1;
unsigned var6:1;
unsigned var7:1;
unsigned var8:1;
}struct1;
unsigned char octet;
} union1;
//tu definis bit à bit ta variable octet
union1.var1 = 0;
union1.var2 = 1;
union1.var3 = 0;
union1.var4 = 1;
union1.var5 = 1;
union1.var6 = 1;
union1.var7 = 0;
union1.var8 = 0;
//union1.octet contient 01011100
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Julie
en fait, tu voudrais faire un truc du genre :
int a = 0b11010101;
qui pourrai s'écrire aussi :
int a = 0xD5;
ou
int a = 213;
mais bon ! apparement, tu tiens à utiliser le format binaire.
voici donc 3 macro pour transformer des chaines binaires (respectivemnt 8, 16 et 32 bits).
#define to8b( o ) ( (((#o[7] == 0x30) ? 0 : 1) << 0) | \
(((#o[6] == 0x30) ? 0 : 1) << 1) | \
(((#o[5] == 0x30) ? 0 : 1) << 2) | \
(((#o[4] == 0x30) ? 0 : 1) << 3) | \
(((#o[3] == 0x30) ? 0 : 1) << 4) | \
(((#o[2] == 0x30) ? 0 : 1) << 5) | \
(((#o[1] == 0x30) ? 0 : 1) << 6) | \
(((#o[0] == 0x30) ? 0 : 1) << 7) )
#define to16b( o )( (((#o[15] == 0x30) ? 0 : 1) << 0) | \
(((#o[14] == 0x30) ? 0 : 1) << 1) | \
(((#o[13] == 0x30) ? 0 : 1) << 2) | \
(((#o[12] == 0x30) ? 0 : 1) << 3) | \
(((#o[11] == 0x30) ? 0 : 1) << 4) | \
(((#o[10] == 0x30) ? 0 : 1) << 5) | \
(((#o[ 9] == 0x30) ? 0 : 1) << 6) | \
(((#o[ 8] == 0x30) ? 0 : 1) << 7) | \
(((#o[ 7] == 0x30) ? 0 : 1) << 8) | \
(((#o[ 6] == 0x30) ? 0 : 1) << 9) | \
(((#o[ 5] == 0x30) ? 0 : 1) << 10) | \
(((#o[ 4] == 0x30) ? 0 : 1) << 11) | \
(((#o[ 3] == 0x30) ? 0 : 1) << 12) | \
(((#o[ 2] == 0x30) ? 0 : 1) << 13) | \
(((#o[ 1] == 0x30) ? 0 : 1) << 14) | \
(((#o[ 0] == 0x30) ? 0 : 1) << 15) )
#define to32b( o )( (((#o[31] == 0x30) ? 0 : 1) << 0) | \
(((#o[30] == 0x30) ? 0 : 1) << 1) | \
(((#o[29] == 0x30) ? 0 : 1) << 2) | \
(((#o[28] == 0x30) ? 0 : 1) << 3) | \
(((#o[27] == 0x30) ? 0 : 1) << 4) | \
(((#o[26] == 0x30) ? 0 : 1) << 5) | \
(((#o[25] == 0x30) ? 0 : 1) << 6) | \
(((#o[24] == 0x30) ? 0 : 1) << 7) | \
(((#o[23] == 0x30) ? 0 : 1) << 8) | \
(((#o[22] == 0x30) ? 0 : 1) << 9) | \
(((#o[21] == 0x30) ? 0 : 1) << 10) | \
(((#o[20] == 0x30) ? 0 : 1) << 11) | \
(((#o[19] == 0x30) ? 0 : 1) << 12) | \
(((#o[18] == 0x30) ? 0 : 1) << 13) | \
(((#o[17] == 0x30) ? 0 : 1) << 14) | \
(((#o[16] == 0x30) ? 0 : 1) << 15) | \
(((#o[15] == 0x30) ? 0 : 1) << 16) | \
(((#o[14] == 0x30) ? 0 : 1) << 17) | \
(((#o[13] == 0x30) ? 0 : 1) << 18) | \
(((#o[12] == 0x30) ? 0 : 1) << 19) | \
(((#o[11] == 0x30) ? 0 : 1) << 20) | \
(((#o[10] == 0x30) ? 0 : 1) << 21) | \
(((#o[ 9] == 0x30) ? 0 : 1) << 22) | \
(((#o[ 8] == 0x30) ? 0 : 1) << 23) | \
(((#o[ 7] == 0x30) ? 0 : 1) << 24) | \
(((#o[ 6] == 0x30) ? 0 : 1) << 25) | \
(((#o[ 5] == 0x30) ? 0 : 1) << 26) | \
(((#o[ 4] == 0x30) ? 0 : 1) << 27) | \
(((#o[ 3] == 0x30) ? 0 : 1) << 28) | \
(((#o[ 2] == 0x30) ? 0 : 1) << 29) | \
(((#o[ 1] == 0x30) ? 0 : 1) << 30) | \
(((#o[ 0] == 0x30) ? 0 : 1) << 31) )
avec ça, tu peux maintenant écrire :
int a = to8b(11010101);
et si tu fais
printf("a = %d", a);
tu obtiendras à l'affichage a = 213
Enjoy !
Je viens aux nouvelles pour savoir si tu t'en sors avec ton format binaire en langage C.