georgeduke
Messages postés167Date d'inscriptiondimanche 6 février 2005StatutMembreDernière intervention13 avril 2007
-
25 avril 2006 à 22:36
georgeduke
Messages postés167Date d'inscriptiondimanche 6 février 2005StatutMembreDernière intervention13 avril 2007
-
27 avril 2006 à 13:25
Bonjour,
Je dois lire/écrire deux valeurs dans un fichier :
- un entier unsigned codé sur 24 bits
- un byte
=> le tout fait donc 32 bits
On m'a conseillé de lire le tout dans un entier unsigned de 32 bits ce que je fais.
Pour stocker le byte ça va, je fais : byte monByte = (byte)(monUInt32 >> 24);
Mais je n'arrive pas trouver la formule pour stocker l'UInt24
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 26 avril 2006 à 01:43
Salut, il n'y a pas de type de 24 bits, il faut utiliser le type UInt32 ou 3 Bytes:
uint value = 0x11223344U; // Valeur de départ.
byte b = ( byte )( value >> 24 ); // Les 8 derniers bits.
uint i = value & 0x00FFFFFFU; // Les 24 premiers bits
// Pour verifierMessageBox.Show( "b " + b.ToString( "X" ) + "\r\ni " + i.ToString( "X" ) );
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 26 avril 2006 à 18:59
Une constante entière ou "littérale" c-à-d un nombre comme 0x0000FFFF ou 500 par exemple est codé en Int32 ou en Int64 si ca valeur dépasse la capacité d'un Int32 avec le suffix "U" ou "u" elle est codée en Uint32.
Les réels étant codés en double on utilises souvent le suffix "f" ou "F", ex :
float x = 10.0f; // sans le "f" 10.0 est un double avant d'être assigné en float dans x.