关于数据在计算机的存储:
数据在计算机底层是以二进制来存储的。而且就是按照数据的补码来存储的。(数据分为:原码、反码、补码)
对于正数来讲:原码、反码、补码都是相同的。对于负数来讲:其补码可以看做是其相反数的各个位去反后,再+1得到。
1. 原码
原码:是最简单的机器数表示法,用最高位表示符号位(正数为0,负数为1),其他位存放该数的二进制的绝对值。
以十进制数30和-30为例子
十进制 | 原码 |
---|---|
30 | 0001 1110 |
-30 | 1001 1110 |
2. 反码
正数的反码还是等于原码;负数的反码就是它的原码除符号位外,按位取反。
十进制 | 原码 | 反码 |
---|---|---|
30 | 0001 1110 | 0001 1110 |
-30 | 1001 1110 | 1110 0001 |
3. 补码
正数的补码等于它的原码;负数的补码等于反码+1。
计算公式为 16位整数补码为 补码=0XFFFF+整数+1
十进制 | 原码 | 反码 | 补码 |
---|---|---|---|
30 | 0001 1110 | 0001 1110 | 0001 1110 |
-30 | 1001 1110 | 1110 0001 | 1110 0010 |