进制基础人事
进制概述
- 进位制是一种计数方式
- 用优先数字符号表示无限的数值
进制的种类
2 4 6 8 16 20 60
为什么计算机喜欢八进制和十六进制
- 二进制太长
- 八进制 十六进制满足2的n次方的要求
二进制转10进制
10进制转2进制
小数的二进制和十进制之间的转换
二进制转小数
小数转二进制
有符号数和无符号数
如下图所示,为原码表示法,以高位为准
原码表示法缺点
- 判断两个操作数大小复杂
- 使用绝对值大的减去小的复杂
- 对于符号值,以绝对值大的为准
补码
计算原则
正数的补码就是正数的二进制数
负数补码就是负数符号位不变,原码取反+1
如 1 1101
补码 10011
反码
计算原则
正数的完全不变,复数的反码即高位不变,其他位全部取反
源码 反码 补码三者解决计算中不带加法的问题
小数的原码 反码 补码
定点数
浮点数
注意阶数不是十进制而是二进制
浮点数规格化规范
要求小数点后的一位必须位1
浮点数例题
步骤如下所示,算出补码,规格化 填空即可
定点数和浮点数的对比
- 位数相同时,浮点数表示范围更大
- 规格化时,浮点数精度更高
- 运算包含阶码和尾数时,浮点数运算更复杂
定点数加法
整数计算
如下图所示,通过补码相加,若看到高位是1即负数,得到负号,再将补码加法结果取反加一即可完成计算
小数计算
判断溢出
如下图所示,将原来的符号位复制一个,若计算结果符号位不同则溢出
浮点数的计算
加减
计算步骤
对阶 如下所示,若阶数不同则需小阶对大阶,下图中x比y少了2,所以尾数左移两位,阶数加两个1
补码相加求和
若不符合下图的样子,则需要规格化一下
如下图左移把1抹掉了,尾数补0,阶数同样减1
右移的情况,高位位1需要补足符号位的1所以右舍
浮点数的乘除法
乘法
阶码相加 尾数相乘
除法
阶码相减 尾数相除