我有一个 char 变量,我只对两个最不重要的十六进制值感兴趣。我如何放弃其他价值观?例子:
char input = 0xFFFFFFD1;
我想:
output = 0xD1;
我试过了:
output = (input&0x000000FF);
但我只是得到:
output = 0xFFFFFFD1
我该如何解决这个挑战?
在您的平台上很可能char
是 8 位的。在这种情况下,这个:
char input = 0xFFFFFFD1;
与此相同:
char input = 0xD1;
我还假设那output
是 type int
。在这种情况下,你需要这个:
int output = (unsigned char)input & 0xFF;
演示:http: //ideone.com/FOdRG。
[如果这不是问题,那么您将需要更新您的问题以包含您正在使用的实际代码。]