对于整形数据,我们知道一个整形是四个字节。储存在计算机中是以补码的形式来储存。
这里对于为什么以补码形式储存做个简单介绍:
例如-1和1
-1的原码是10000000000000000000000000000001。对原码取反得到反码
如下:11111111111111111111111111111110。再对其加一得补码
如下:11111111111111111111111111111111。
正数1的原反补相同
为:00000000000000000000000000000001。
如果要进行-1+1这个操作我们可以想象用二进制来加减,而如果计算机储存原码,那么加完之后并不会得到32个全0的二进制数字,但是我们可以通过补码来入手。加完变成33位,舍弃完头一位的1后得到32个全0二进制数字即得到了0。
那么看如下的代码