为什么结果是32,求讲解

2025-12-25 06:09:44
推荐回答(1个)
回答1:

i不是=1,是32个1;
在C语言中,~x代表的意思是按位取反的意思。
使用~进行按位取反时,将某个数x的二进制的每一个bit取反即可得到~x的值。
如~0x37,即~(0011 0111),得到的答案应该为:
~0x37=~(0011 0111)=(1100 1000)=0xC8。
需要注意的是,在C语言中,还有一个逻辑取反符号“!”
“!x”的返回值只有0和1两种。如果x为0,则!x=1
如果x不等于0.则!x的返回值为0