wenbo2005.online

学习记录 / STM32

二进制原反补码

STM322025-06-28
int main()
{
     int a = 0;
     int b = ~a;
     printf("%d\n",b );
 }

#结果为:-1

1111 1111 1111 1111

int 是有符号整数,最高位为1表示负数,为0表示正数;

负数在内存中存储时,存储的是二进制补码,整数的原码与补码相同;

原码 -->(符号位不变,其他位取反) 反码 -->(加一) 补码

任何整数数字在内存中都是补码,原码是我们看的,反码是中间状态