如果s &= ~1U
,这段代码s=8
会做什么?
我以为它必须对二进制文件执行某些操作,但是不知道到底是什么?
谢谢!
答案 0 :(得分:2)
为简单起见,这里用1字节二进制(8位)写出来。
s = s & ~1 // U means "unsigned"
s = 8 & ~(0b00000001) // Here is the binary representation of 1
s = 8 & 0b11111110 // ~1 is 254
s = 0b00001000 & 0b11111110
s = 0b00001000
s == 8 // Final Answer.
可以通过在IDEOne上运行代码来确认这一点
#include <stdio.h>
int main(void) {
int s = 8;
s &= ~1U;
printf("%d\n", s);
return 0;
}
Success #stdin #stdout 0s 9424KB
8