Comment utiliser les octets hauts et bas?
Je suis en train d'essayer de représenter 32768 à l'aide de 2 octets. Pour l'octet de poids fort, puis-je utiliser les mêmes valeurs que l'octet de poids faible et il va interpréter différemment ou dois-je mettre les valeurs réelles? Alors je mis quelque chose comme
32678 0 ou 256 0? Ou aucun des deux? Toute aide est appréciée.
source d'informationauteur Sterling
Vous devez vous connecter pour publier un commentaire.
En hexadécimal, votre numéro est 0x8000 qui est 0x80 et de 0x00.
Pour obtenir de l'octet de poids faible de l'entrée, de l'utilisation
low=input & 0xff
et pour obtenir de l'octet haut, l'utilisationhigh=(input>>8) & 0xff
.Obtenir l'entrée arrière de la basse et de haute exemptions de la sorte:
input=low | (high<<8)
.Assurez-vous que les types d'entiers que vous utilisez sont assez grand pour stocker ces chiffres. Sur les systèmes 16 bits,
unsigned int
/short
ousigned
/unsigned long
devrait être assez grand.Octets ne peut contenir que des valeurs de 0 à 255 inclus. 32768 est 0x8000, de sorte que l'octet de poids fort est de 128 et de l'octet de poids faible est 0.
32768 est 0x8000, de sorte que vous pouvez mettre 0x80 (128) dans votre octet de poids fort et 0 dans votre octet de poids faible.
C'est en supposant que les valeurs non signées, bien sûr. 32768 n'est pas réellement une valeur juridique pour l'un signé de 16 bits de la valeur.
32768 dans l'hexagone 0080 sur un little-endian plate-forme. Le "haut" (deuxième dans notre cas) octet contient 128, et le "bas" de la un 0.
Essayer cette fonction.
Passer votre Hi_Byte et Lo_Byte à la fonction, elle renvoie la valeur que Word.
Pointeurs peuvent le faire facilement, sont BEAUCOUP plus RAPIDES que les quarts de travail et ne nécessite pas de processeur mathématiques.
Cochez cette réponse
MAIS:
Si j'ai bien compris votre problème, vous avez besoin jusqu'à 32768 stockées dans les 2 octets, de sorte que vous besoin de 2 unsigned int, ou 1 unsigned long.
Il suffit de changer de type int pour longtemps et char, int, et votre bon pour aller.