1. 二进制概念
- 二进制是由0与1组成的机器码 即01010101
- 二进制单位是bit
- 8bit为1组 ,理论状况就是数字1 转换为二进制 00000001
- 二进制最高位为符号位,0示意负数(+),1 示意正数(-) -1 ---> 10000001 1 ----->00000001
2. 原码
- 原码就是符号位加上真值的绝对值.
例:
- [+1]原= 0000 0001
- [-1]原= 1000 0001
3. 反码
- 负数的反码是其自身;
- 正数的反码是在其原码的根底上,符号位不变,其余各个位取反。
例
- [+1] = [0000 0001]原= [0000 0001]反
- [-1] = [1000 0001]原= [1111 1110]反
4. 补码
- 负数的补码就是其自身;
- 正数的补码是在其原码的根底上,符号位不变,其余各位取反,最初+1。(也即在反码的根底上+1)
例
- [+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补
- [-1] = [1000 0001]原= [1111 1110]反= [1111 1111]补
5. 原码、反码、补码(重点 难点)
- 二进制的最高位是符号位: 0正 1负
- 负数的原码,反码,补码都一样(三码合一)
- 正数的反码=它的原码符号位不变,其余位取反(0->1,1->0)
- 正数的补码=它的反码+1,正数的反码=正数的补码-1
- 0的反码,补码都是0
- java没有无符号数,换言之,java中的数都是有符号的
- 在计算机运算的时候,都是以补码的形式来运算的.
- 当咱们看运算后果的时候,要看它的原码(重点)