我有一个char变量,我只对两个最不重要的十六进制值感兴趣。我如何松开其他值?例如:
char input = 0xFFFFFFD1;
我想:
output = 0xD1;
我试过了:
output = (input&0x000000FF);
但是我得到了:
output = 0xFFFFFFD1
我如何解决这一挑战?
答案 0 :(得分:2)
您的平台上char
很可能是8位。在这种情况下,这个:
char input = 0xFFFFFFD1;
与此相同:
char input = 0xD1;
我还假设output
的类型为int
。在这种情况下,您需要这个:
int output = (unsigned char)input & 0xFF;
[如果这不是问题,那么您需要更新您的问题以包含您正在使用的实际代码。]