int main()
{
int a = 0;
int b = ~a;
printf("%d\n",b );
}
#结果为:-1
1111 1111 1111 1111
int 是有符号整数,最高位为1表示负数,为0表示正数;
负数在内存中存储时,存储的是二进制补码,整数的原码与补码相同;
原码 -->(符号位不变,其他位取反) 反码 -->(加一) 补码
任何整数数字在内存中都是补码,原码是我们看的,反码是中间状态
学习记录 / STM32
int main()
{
int a = 0;
int b = ~a;
printf("%d\n",b );
}
#结果为:-1
1111 1111 1111 1111
int 是有符号整数,最高位为1表示负数,为0表示正数;
负数在内存中存储时,存储的是二进制补码,整数的原码与补码相同;
原码 -->(符号位不变,其他位取反) 反码 -->(加一) 补码
任何整数数字在内存中都是补码,原码是我们看的,反码是中间状态