C语言,,,为什么结果是这个,不是相同为0,不同为1吗

2025-05-01 06:31:54
推荐回答(1个)
回答1:

&、|、^、>>、<<都是C语言中的位运算符,对数字进行bit(位)层面的运算。

&:只有对应的两个二进位均为1时,结果位才为1 ,否则为0。

|:只要对应的两个二进位有一个为1时,结果位就为1。

^:当两对应的二进位不相同时,结果位为1。

>>:把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如:00000011(十进制3)<<4 表示把3的各二进位向左移动4位得到00110000(十进制48)。

<<:把“>> ”左边的运算数的各二进位全部右移若干位,由“>>”右边的数指定移动的位数。例如:000001111(十进制15)>>2表示把15的各二进位向右移动2位得到00000011(十进制3)。

以下是提问中的程序运行结果与过程对照:


以%f输出的x为单精度浮点数,即小数,%.3f意为小数点后保留三位。

"\n"为换行符。