请查看以下代码并帮助我理解它
int a=1;
int b=~1;
printf("%d",b);
Run Code Online (Sandbox Code Playgroud)
输出是:
-2
Run Code Online (Sandbox Code Playgroud)
所以这表示 1=(00000001) 当经历 ~ 时产生 (11111110),它是数字 2 的 2 补码,因此 -2 就是答案。那么 100 总是被假定为 -4 而不是 4 ?
在下面的代码中sizeof(int)会产生signed int与4个字节的值(假设在一个特定的编译器)和-1也signed int,则我的答案应该是,但它显示没有.
#include <stdio.h>
int main()
{
if (sizeof(int) > -1)
printf("Yes");
else
printf("No");
return 0;
}
Run Code Online (Sandbox Code Playgroud)