int类型在计算机中的储存
说起,int类型在计算机中的储存,首先要解释的就是原码、补码、反码这三个概念了。因为计算机内部储存的都是补码。
原码
对于int类型来说,这里我们按照常见的四个字节讲解,四个字节32个bit。第一位是符号位,0代表正数,1代表负数。所以int类型最大的整数,为
0 1 1 1
| 1 1 1 1
| 1 1 1 1
| 1 1 1 1
| 1 1 1 1
| 1 1 1 1
| 1 1 1 1
| 1 1 1 1
也就是2 ^ 31 - 1 = 2147483647。
最小同理值就是 - 2147483648。
反码
正数的反码,就是起原码。负数的源码,是除了符号位之外,按位取反。0变1,1变0。
补码
正数的补码也是反码,但是负数的补码就是反码加一。
举例
-559039827对应的
- 原码
1 0 1 0
|0 0 0 1
|0 1 0 1
|0 0 1 0
|0 1 0 0
|0 1 0 1
|0 1 0 1
|0 0 1 1
- 补码
1 1 0 1
|1 1 1 0
|1 0 1 0
|1 1 0 1
|1 0 1 1
|1 0 1 0
|1 0 1 0
|1 1 0 0
- 补码
1 1 0 1
|1 1 1 0
|1 0 1 0
|1 1 0 1
|1 0 1 1
|1 0 1 0
|1 0 1 0
|1 1 0 1
有时我们会写为
0xDEADBAAD
显示的小序端储存,如下’\xad\xba\xad\xde’