学习目标:
- int类型的变量所能存储的数字范围是多少?
- 最小负数的二进制代码是多少?
- 最大正数的二进制代码是多少?
- 已知一个正数的二进制代码求出原始数字
- 数字超过最大正数会怎么样
补码:
原码
也叫符号绝对值码
最高位0
表示正,1
表示负,其余二进制是该数字的绝对值的二进制位- 原码简单易懂 - 加减运算复杂 - 存在加减乘除四种 运算,增加了CPU的负担 - 零的表示不唯一
反码
- 反码运算不便,也没有在计算机中应用
移码
- 移码表示数值平移了n位,n称为移码量
- 移码主要用于浮点数的阶码的存储
补码
- 已知 十进制转二进制
- 正整数转二进制
- 除2
取余,直至商为0
,余数倒序排列 - 负整数转二进制
- 先求与该负数相对应的正整数的二进制代码,然后将所有位取反,末尾加
1
,不够位数,左边补1
。 - (-3)10=(011)2,补码为(101)2.若为
int
型,则前面补29
个1
- 零转二进制
- 全是零
- 先求与该负数相对应的正整数的二进制代码,然后将所有位取反,末尾加
- 正整数转二进制
- 已知 二进制转十进制
- 如果首位数是0,则表明是正整数,按普通方法来求
- 如果首位是1,则表明是负整数
- 将所有位取反, 末尾加1,得到的数字是该负数的绝对值。
- 补够32位 ,否则变成正数
- 如果全是零,则对应的十进制数字就是零