一,不同进制的数字
(一)一些示例
1,十进制(Decimal):例如 23=2*10+*1
2,二进制(Binary):例如 11=1*2+1*1=3
(二)计算二进制
1,最大的十进制数可以用n位表示:2^n-1
2,MSB:最高有效位
3,LSB:最小有效位
4,十进制向二进制转换:
- sum-of-weight method
例如:对于19: 19=2^4+2+1=10011
- repeat division/multiplication by 2 method
如果数大于一,反复除二直至0,每一次的余数组成结果,MSB是最后一个余数,LSB是第 一个余数。
例如:19/2=9...1, 9/2=4...1, 4/2=2...0, 2/2=1...0, 1/2=0...1 ------->10011
如果数小于一,反复取小数部分乘二直至1,每一次的整数部分组成结果,MSB是第一个, LSB是最后一个。
例如:0.3125*2=0.625-->0, 0.625*2=1.25--->1, 0.25*2=0.50--->0, 0.50*2=1--->1
---------->0101
5,二进制计算规则
- 加法:1+1=10, 1+0=1, 0+0=0
- 减法:1-1=0, 10-1=1, 0-0=0, 1-0=0
- 乘法:1*1=1, 1*0=0, 0*1=0, 0*0=0
6,二进制补码(Complements):
- 1's complements:每一位数字都与原二进制数字相对位相反(如11010--->00101)
- 2's complements:
方法一:在1‘s complements的基础上加一的结果
方法二:从二进制数的LSB开始,找到第一个包含1的位,然后取剩余位的1‘s complement。
7,记号位(signed numbers):
- 符号量值形式:
符号位:0->正数,1->负数
- 1‘s complements
用8位来表示-25
25: 0 0 0 1 1 0 0 1
-25: 1 1 1 0 0 1 1 0
- 2's complements:
-25: 1 1 1 0 0 1 1 1
- 范围
对于n位数字:[-2^(n-1) , +2^(n-1)-1]
- 加法
1,将十进制数转换为带有负数的二进制形式,以2's complement形式表示
2,执行二进制加法
3,符号:如果两个数都是正(负)→结果为正(负)。否则,溢出表明结果为正。
- 减法
1,改变减数的符号并将数字相加
2,如果减数是二进制格式 → 2 's complement
- 乘法
1,如果乘数很大,则非常冗长
2,两个数字必须为真(未补)形式。
部分积
1,同号→正
2,不同符号 → 负数
- 有符号数除法
1,计算机中的除法运算是使用减法完成的。
2,商和余数
◆ 何时停止减法:
余数为零或负数
◆ 商:执行减法的次数
3,商的符号
◆ 同号→正
◆ 不同符号 → 负数
4,求商的步骤
1,取除数的2's complement(取负值)
2,重复加法运算直至不能继续
3,累加计算次数,取次数的二进制数即商
- 浮点数:用尾数和指数表示的浮点数(32位)
二,编码
(一)二进制编码十进制(BCD)
- 定义:用二进制数字表示每一位的十进制数字
- BCD向十进制的转换:从最右边的位开始,将代码分成四位一组
- BCD加法:1. 使用二进制加法规则将两个 BCD 数相加。2. 如果 4 位和 ≤ 9 → 有效 BCD 数。3. 否则,将 6 (0110) 添加到 4 位和中
(二)格雷码(Gray Code)
1,定义:从一个代码字到下一个代码字顺序只有一位发生变化
2,Binary <=> Gray code:
Binary到Gray code:
Gray code到Binary:
3,使用格雷码对传输符号进行编码
◆ 发射机发送四个符号之一;
◆ 传输的符号因噪声而失真;
◆ 接收器尝试解码失真的符号;
◆ 符号检测错误的概率与符号距离成反比
(三)字母数字代码
例如:ASCII:美国信息交换标准代码
(四)错误代码:
1,用于错误检测的奇偶校验位:奇偶校验位附加到一组位上,以使一组中 1 的总数始终为偶数或始终为奇数。
2,循环冗余检查(CRC):一种错误检测方法,可以检测数据块中的多个错误
在发送端,校验和被附加到数据块中。
在接收端,生成校验和并与发送的校验和进行比较。 如果校验和为零,则未检测到错误。
图片来自书籍:Digital_Fundamentals_11ed_by_Thomas_L.Floyd