0

嗨,我是处理字节和低级编程的新手。目前,我有一个 int(32 位)......所以它看起来像这样:

 0000000 10011011 00000000 00000000

我试图只输出第三组 0 和 1(从右边数)。所以我会输出一个字符值(?)我该怎么做?

谢谢!

4

2 回答 2

3

您可以将这些位右移 16 位,然后使用 0x000000FF 清除除所需位之外的所有位。

int i =  0b0000000100110110000000000000000;
char c = (i >> 16) & 0xFF;
printf("%c\n", c);
于 2012-10-13T01:03:12.820 回答
0
int a = 1083899904;
    a = a >> 16;
    a = a % 256;

a 现在包含 char 值。你只需要从这里投射它。

我正要发布这个,但你更快。

于 2012-10-13T01:20:37.580 回答