文章目录
2.1
进位计数法
- 二进制(方便对应到物理器件的状态)(B)
- 四进制
- 八进制
- 十进制(D)
- 十六进制(H)
基数:每个数位所用到的不同符号的个数。 - 基数大----位数少----运算多
- 基数小----位数多----运算少
进制转换
任意进制与十进制
- 任意进制–>十进制:按照上面方法写出来,按十进制相加
- 十进制–>任意进制:除基取余法(整数/r取余数,小数*r取整数部分)
二进制与八进制、十六进制
真值与机器数
- 真值:带符号的数:例如 +15
- 机器数:把符号用01表示,01111
BCD码
BCD码的三种表现
字符与字符串
- 常用的字符包含数字、字母、符号共128个字符-------->用7位二进制编码--------->ASCLL码
- 可印刷字符(32-126)
- 数字(48-57)
- 大写字母(65-90)
- 小写字母(97-122)
- 字符串的存储:
- 大端模式:存储单元内先存储高位字节、后存储低位字节的顺序。
- 小端模式:存储单元内先存储低位字节、后存储高位字节的顺序。
汉字+各种符号共7445个:
校验原理和奇偶效验
码距: 两个合法码字对应数字的不同位的个数。
校验原理: 在编码方案中有一些编码用不到,这些编码可以用来指示错误。
奇校验: 保证一段数据中出现奇数个1(只能检测出奇数个错)。
偶校验: 整个校验码(有效信息位和校验位)中 “1”的个数为偶数。
海明码
设计思路:
分组校验---->多个校验位---->校验位标注出错误位置
求解步骤:
- 确定海明码的位数: 2k >= n + k + 1
- 确定校验位的分布: 校验位 Pi 放在 2i-1 的位子上,信息位顺序放到其余位置。
- 求校验位的值:
- 纠错:校验位 S3 S2 S1:
循环冗余效验码(CRC)
求解步骤:
- 确定 K、R以及生成多项式对应的二进制码。 K = 信息长度,R = 生成多项式最高次幂,
- 移位:信息码左移 R 位,低位补0。
- 相除:移位后的信息码,用生成多项式对应的二进制码,进行模2除法,产生余数就是校验码
- 除法规则:
- 检错和纠错:把收到的数据,用生成多项式的二进制码做模2除,余数000代表没错,否则代表出错位。案例:
2.2
无符号数及定点数的表示
无符号数
- 无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。
- 8位二进制数:28 种不同的状态,范围:(0 ~ 28-1)
- n位无符号数表示范围:(0 ~ 28-1)
定点数
原码 补码 反码 移码
约定:用 X 表示真值,[X]原 表示原码,[X]补 表示补码,[X]反 表示反码,[X]移 表示移码。
原码:
由符号位决定计算规则
- 纯小数原码:
- 纯整数原码:
补码
- [X]原–>[X]补:正数不变:负数符号位不变,数值位取反加1
- [X]补–>[-X]补:连同符号位一起取反加1
- 纯整数表示范围:-2n ~ 2n-1 (比原码多表示 -2n)
- 纯小数表示范围:-1 ~ 1 - 2-n (比原码多表示 -1)
反码
- [X]原–>[X]反:正数不变:负数符号位不变,数值位取反
- 表示范围与原码相同。
移码
定义: 就是在真值X上加上一个常熟(偏置值)通常这个常数取 2n
- [X]移 = Xn + X
- 补码和移码的关系:补码的最高位取反=移码
移位运算
**右移 n 位相当于 除以 ** rn 左移 n 位相当于乘以 rn
- 逻辑移位:
- 机器数采用无符号数。
- 左移时高位丢失,低位补零
- 右移时低位丢失,高位补零
- 算数移位
- 有符号数的移动
- 符号位不参与移位
- 原码算术移位:左移丢1,运算出错;右移丢1,影响精度。
循环移位: 把移出的位补充到空出的位置。
加减运算和溢出判断
采用补码来计算
溢出判断方法:
原码乘法
原码一位乘法
- 符号位单独运算(异或运算)
- 数据位取绝对值,每次将一位乘数对应的部分积与原部分积的累加和进行相加,并右移一位,直到乘数的所有位被用完。
补码移位乘法
强制类型转换
- 无符号数与有符号数:不改变数据内容,改变解释方式
- 长整数变短整数:高位截断,保留低位
- 短整数变长整数:符号扩展
除法预备知识
-
原码的除法:(手工实现)
-
原码恢复余数法:
原码除法与补码除法
- 原码的不恢复余数法:
- 补码的加减交替法(符号位参与运算)
2.3
浮点数的表示
规格化后的范围总结:
IEEE754标准
规格化格式:
规定:
- E=0且M=0,则真值为0
- E=0且M != 0 ,为非规格化数,真值=(-1)s X 0.M X 2-126
- 1<=E<=254时,真值=(-1)s X 1.M X 2E-127
- E=255且M != 0时,真值为 ‘NaN’(非数值)
- E=255且M = 0时,真值为正无穷或负无穷(看符号位)
浮点数加减
步骤
步骤:
- 对阶:使两个数的阶码相等,小阶向大阶看起,尾数每右移一位,阶码加1
- 尾数加减
- 规格化(负数的规格化形式是1.0XXX……)
- 舍入
- 判溢出
强制类型转换
2.4
ALU
主要功能:
- 算术运算:加减乘除等。
- 逻辑运算:与或非,异或等。
- 辅助功能:移位、求补等。