1

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

 char input = 0xFFFFFFD1;  

我想:

 output = 0xD1;    

我试过了:

output = (input&0x000000FF);  

但我只是得到:

output = 0xFFFFFFD1

我该如何解决这个挑战?

4

1 回答 1

2

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

char input = 0xFFFFFFD1;

与此相同:

char input = 0xD1;

我还假设那output是 type int。在这种情况下,你需要这个:

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

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

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

于 2012-06-29T14:47:15.203 回答