C语言中0x01<<9,和0x01U<<9得到的结果一样吗,是都为0吗

2024年11月19日 16:37
有2个网友回答
网友(1):

在C语言中,&可以用作取地址和按位与操作两种运算。不过取地址是针对变量的,当前&后是一个常量,在C语言中不允许取地址操作,所以这个是语句的一部分,前面还要有一个操作变量。比如
a&0x01
&是双目操作符,需要两个操作数,代表含义为按位与操作。
计算时,按位计算,两个操作数上对应位的值如果均为1,则结果对应位上值为1,否则结果对应位上值为0。
分析操作数0x01的二进制值为0000 0001,综合按位与的运算规则,可以知道除最低位外,结果值为0,最低位结果与前一个操作数的最低位相同。
于是a&0x01就是取a的最低位值的运算。

网友(2):

如果是我们现在使用的电脑,结果应该还是1