si var c'est une variable de type char (1 octet) tu fais :
var = (var & 0xF0) >> 4 ;
et si c'est du unsigned char tu peux seulement faire :
var >>= 4 ;
dans les 2 cas var contiendras le quartet de poids fort !
[jfdsdjhfuetppo]--Message édité par *Syl*--[/jfdsdjhfuetppo]
trueslash
et si je veux les 4 bits de poids forts, je fais
mavar = monautrevar & 0x0F
?
bon merci bcp, j'essaye !!
:jap: :hello:
*syl*
trueslash a écrit a écrit :
en fait, je dois lire les 4 bits de poids faible d'un entier , c pour ça que je veux une variable de 4 bits
bah alors ce sera var = var & 0xF ;
C'est tout..tu récupereras que tes 4 bits de poids faible !
trueslash
en fait, je dois lire les 4 bits de poids faible d'un entier , c pour ça que je veux une variable de 4 bits
*syl*
trueslash a écrit a écrit :
je suis obligé de passer par un struct ?
Bah justement, j'viens de dire comment ne pas passer par la struct juste au dessus .. ( % 0xF)
:hello:
*syl*
antp a écrit a écrit :
ça prendra 8 bits. Le compilateur arrondit la taille de la structure à l'octet supérieur.
Vu que l'unité de base est l'octet tout prendra d'office au moins 1 octet.
Un boolean par exemple prend un octet, même si on n'en utilise qu'un bit.
J'ai jamais dit le contraire ! :)
S'il veut que sa variable ne puisse contenir que les chiffres 0 à 15, c'est son pb.. M'enfin, perso j'aurais préférer faire un modulo plutôt qu'un vieux tableau de bit.. :pt1cable:
trueslash
je suis obligé de passer par un struct ?
antp
*Syl* a écrit a écrit :
Code :
struct{
unsigned FourBits :4;
} var ;
var.FourBits = 0xF ;
ça prendra 8 bits. Le compilateur arrondit la taille de la structure à l'octet supérieur.
Vu que l'unité de base est l'octet tout prendra d'office au moins 1 octet.
Un boolean par exemple prend un octet, même si on n'en utilise qu'un bit.
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
*syl*
Code :
struct{
unsigned FourBits :4;
} var ;
var.FourBits = 0xF ;
Ça, ça devrait marcher.. :hello:
trueslash
comment on déclare une variable entière codée sur 4 bits ?
j'ai réussi en passant par un struct (unsigned maVariable :4;)
mais ça marche pas dans mon code ...