c语言按位运算

发布网友

我来回答

2个回答

热心网友

unsigned在内存中占2字节即十六位,八进制123456转换为二进制1010011100101110,b=a>>4 b=0000101001110010
c=0000000000001111 b&c即按位与,二进制对应位上全是1才为1,否则为0
d=0000000000000010
即d=2

热心网友

你的输入是什么?

八进制123456就是二进制1010 0111 0010 1110

b = a >> 4;
a右移四位之后,就成了1010 0111 0010

c = ~ ( ~ 0 << 4);

~0<<4得到的就是一个低四位是0,其余位是1的数字,对这个数字再次按位取反就得到了一个低四位是1,其余位是0的数字,并将这个数字赋值给c。

d = b & c;

这里的作用就是提取b的低四位,由于b的值是1010 0111 0010,所以低四位是0010

于是便输出0010的十进制形式2

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com