二进制的最高位指的是符号位,1表示负数,0表示正数。负数在内存中存储时,存储的是二进制的补码,使用、打印的是原码。按(二进制)位取反时,原码符号位不变,其他位按位取反得到反码,反码加1得到补码

1111111 补码                                     正数的原码、反码和补码都一样

​1111110 反码

1000001 原码

#include<stdio.h>
int main()
{
int a = 0;
int b = ~a;
printf("%d\n",b);
return 0;
}