如何在C ++中获取char的最低有效位

时间:2012-06-29 14:44:23

标签: c++ char

我有一个char变量,我只对两个最不重要的十六进制值感兴趣。我如何松开其他值?例如:

 char input = 0xFFFFFFD1;  

我想:

 output = 0xD1;    

我试过了:

output = (input&0x000000FF);  

但是我得到了:

output = 0xFFFFFFD1

我如何解决这一挑战?

1 个答案:

答案 0 :(得分:2)

您的平台上char很可能是8位。在这种情况下,这个:

char input = 0xFFFFFFD1;

与此相同:

char input = 0xD1;

我还假设output的类型为int。在这种情况下,您需要这个:

int output = (unsigned char)input & 0xFF;

演示:http://ideone.com/FOdRG

[如果这不是问题,那么您需要更新您的问题以包含您正在使用的实际代码。]