如何使用高字节和低字节?

Ste*_*ing 15 c++ byte bytearray bit 16-bit

我试图用2个字节代表32768.对于高字节,我是否使用与低字节相同的值,它将以不同的方式解释它们还是将实际值放入?那么我会把像32678 0或256 0这样的东西?或者两者都没有?任何帮助表示赞赏.

Joh*_*ane 22

在十六进制中,您的数字是0x8000,即0x80和0x00.要从输入获取低字节,请使用low=input & 0xff和获取高字节,请使用high=(input>>8) & 0xff.

从低位和高位获得输入,如下所示:input=low | (high<<8).

确保您使用的整数类型足以存储这些数字.在16位系统上,unsigned int/ shortsigned/ unsigned long应该足够大.

  • 或者`unsigned short`.通常使用`>>`运算符更好地使用`unsigned`类型. (2认同)

Ign*_*ams 5

字节只能包含0到255(含)之间的值。32768是0x8000,因此高位字节为128,低位字节为0。

  • 永远和斑马在一起。马人,马人。 (4认同)
  • 很公平。但是我想我可以算出现代系统的数量,该系统一方面将字节定义为8位以外的值。 (3认同)