我正在阅读关于按位运算符的章节,我遇到了1的补码运算符程序,并决定在Visual C++上运行它.
int main ()
{
unsigned char c = 4, d;
d = ~c;
printf("%d\n", d);
}
Run Code Online (Sandbox Code Playgroud)
它给出了有效的输出: 251
然后我决定直接打印值,而不是d
用作变量来保存~c
值~c
.
int main ()
{
unsigned char c=4;
printf("%d\n", ~c);
}
Run Code Online (Sandbox Code Playgroud)
它给出了输出-5
.
它为什么不起作用?
我正在阅读 Galvin 的操作系统概念。在信号量部分,它说在修改信号量的值时必须禁用对处理器的所有中断。 为什么需要它?