[C++] declarer une variable de 4 bits ...

declarer une variable de 4 bits ... [C++] - Programmation

Marsh Posté le 13-03-2002 à 22:39:53    

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 ...
 
 :hello:

Reply

Marsh Posté le 13-03-2002 à 22:39:53   

Reply

Marsh Posté le 13-03-2002 à 23:00:21    

Code :
  1. struct{
  2.     unsigned FourBits :4;
  3. } var ;
  4. var.FourBits = 0xF ;


 
Ça, ça devrait marcher.. :hello:

Reply

Marsh Posté le 13-03-2002 à 23:53:31    

*Syl* a écrit a écrit :

Code :
  1. struct{
  2.     unsigned FourBits :4;
  3. } var ;
  4. 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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-03-2002 à 23:58:19    

je suis obligé de passer par un struct ?

Reply

Marsh Posté le 13-03-2002 à 23:58:29    

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:

Reply

Marsh Posté le 14-03-2002 à 00:00:13    

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:

Reply

Marsh Posté le 14-03-2002 à 00:00:41    

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

Reply

Marsh Posté le 14-03-2002 à 00:01:48    

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 !

Reply

Marsh Posté le 14-03-2002 à 00:06:21    

et si je veux les 4 bits de poids forts, je fais  
 
mavar = monautrevar & 0x0F
 
?
 
bon merci bcp, j'essaye !!
 
 :jap:  :hello:

Reply

Marsh Posté le 14-03-2002 à 00:08:58    

trueslash a écrit a écrit :

et si je veux les 4 bits de poids forts, je fais  
 
mavar = monautrevar & 0x0F
 
?
 
bon merci bcp, j'essaye !!
 
 :jap:  :hello:  




 
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]

Reply

Marsh Posté le 14-03-2002 à 00:08:58   

Reply

Marsh Posté le 14-03-2002 à 00:33:53    

[:gui42]  
 
merci bcp, ça marche impecable !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed