整数存储
在计算机中,整数都是通过二进制保存的,不论是十六进制还是八进制还是十进制
整数的2进制表⽰⽅法有三种,即原码、反码和补码
对于整形来说:数据存放内存中其实存放的是补码
- 在计算机系统中,数值⼀律⽤补码来表⽰和存储。
- 原因在于,使⽤补码,可以将符号位和数值域统⼀处理;
- 同时,加法和减法也可以统⼀处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
正整数的反码补码就是它本身
但是负整数的反码补码不一样,以-1举例
int a = -1;
//100000000000000000000001 - 原码
// 原码->反码:除符号位,所有位取反
//111111111111111111111110 - 反码
// 反码->补码:反码加一
//111111111111111111111111 - 补码
因为负整数-1的补码存储形式,我们可以利用操作符~来判断输入是否成功
int a;
while (scanf(&#