1. 表现形式:
无论是原码还是反码甚至补码.它们都是二进制的不同的表现形式.
2.数据存储方式:
任何数据在内存中都是以数据的补码形式存储的.
3. 内存存储机制:
1个整型的变量. 在内存之中占据4个字节. 32位.
00000000 00000000 00000000 00000001
使用最高位来表示1个数的正负性.
如果最高位是0 那么代表这个数是1个正数.
如果最高位是1 那么代表这个数是1个负数.
1个整型变量的最高位是符号位. 所以真正用来存储数据的只有31位.
所以,1个整型的变量能够存储的最大值是 2的31次方 2147483648
所以,1个整型的变量最小值是, -2147483648 ~~ +2147483647
4. 原码:
a. 无论是原码 还是 反码 还是补码 都是二进制的不同的表现形式.
b. 什么是原码:
最高位用来表示符号. 0表示正负 1表示负数.
剩下的位: 是这个数的绝对值的二进制形式.
10.
00000000 00000000 00000000 00001010
-3
10000000 00000000 00000000 00000011
绝对值: 正数的绝对值是自己 负数的绝对值是去掉负号.
-65
10000000 00000000 00000000 01000001
5. 反码:
1). 正数的反码就是其原码.
2). 负数的反码在原码的基础之上 符号位不变 其他位取反.
12
原码:00000000 00000000 00000000 00001100
反码:00000000 00000000 00000000 00001100
-4
原码:10000000 00000000 00000000 00000100
反码:11111111 11111111 11111111 11111011
6. 补码:
1). 正数的补码就是其原码. 所以正数的原码、反码、补码都是一样的.
2). 负数的补码: 在其反码的基础之上加1.
6
原码: 00000000 00000000 00000000 00000110
反码: 00000000 00000000 00000000 00000110
补码: 00000000 00000000 00000000 00000110
-6
原码: 10000000 00000000 00000000 00000110
反码: 11111111 11111111 11111111 11111001
补码: 11111111 11111111 11111111 11111010
8. 数据为什么要用补码来存储.
因为计算机中只有加法 没有减法,为了更低成本的计算数学运算的结果 所以使用补码来存储.
3-2 3+(-2);
4+5
3-2 —> 3 + (-2).
用原码来计算.
00000000 00000000 00000000 00000011
10000000 00000000 00000000 00000010
10000000 00000000 00000000 00000101 -5
用反码计算:
00000000 00000000 00000000 00000011
11111111 11111111 11111111 11111101
00000000 00000000 00000000 00000000 0
使用补码计算:
00000000 00000000 00000000 00000011
11111111 11111111 11111111 11111110
00000000 00000000 00000000 00000001 1