计算机组成原理 - day02 - 5 数据的表示和运算

目录

. 数据的表示和运算

2. 1 进位进数制

2.1.1 什么是十进制

2.1.2 不同进制的表示范围

2.1.3 任何进制 转 十进制

 2.1.4 采用二进制作为计算机的表示原因

 2.1.5 二进制 和 八进制、十六进制的转换

2.1.6 十进制 转换到 任意进制

2.1.7 十进制转二进制(建议使用拼凑法)

2.1.8 真值与机器数

3. BCD码

3.1 概念

3.2 8421码

3.3 余3码

3.4 2421码

4. 字符与字符串

4.1 ASCII码

4.2 汉字的表示和编码

4.3 字符串

5. 奇偶校验码

5.1 校验原理

5.2 概念

5.3 奇偶校验码

6. 海明校验码

6.1 求解海明码的步骤

6.1.1 确定海明码的位数

6.1.2 确定校验位的分布位置

6.1.3 求校验位的值 与纠错

 6.2 那如果有两个比特位跳变呢?

7. 循环冗余校验码(CRC)

7.1 循环冗余校验码的基本思想

 7.2 求循环冗余码

7.3 模2除法实例

7.4 CRC的检错和纠错

7.5 最终算得的余数和出错位没有必然关系

8. 定点数的表示

8.1 无符号数的表示范围

8.2 有符号数的定点表示

8.3 原码

 8.4 反码

8.5 补码

8.6 移码

8.7 对比

8.8 补码的作用

8.8.1 模运算的性质

8.8.2 数论中对于余数的定义

8.8.3 例子


. 数据的表示和运算

2. 1 进位进数制

2.1.1 什么是十进制

 1. 像9、7、5这样的符号所在的位置表示权重,而9、7、5表示权值

 

2.1.2 不同进制的表示范围

2.1.3 任何进制 转 十进制

可以通过记忆2的n次方的所有值,快速得到二进制和十进制的转换

 2.1.4 采用二进制作为计算机的表示原因

① 可使用两个稳定状态的物理器件表示
② 0,1正好对应逻辑值假、真。方便实现逻辑运算
③ 可很方便地使用逻辑门电路实现算术运算
 

 2.1.5 二进制 和 八进制、十六进制的转换

2.1.6 十进制 转换到 任意进制

1.整数部分,除基取余,从下到上

 

2、小数部分,乘基取整,从上到下

 

2.1.7 十进制转二进制(建议使用拼凑法)

 

 260.75 = 256 + 4 + 0.5 + 0.25 = 100000100.11

533.125 = 512 + 16 + 4 + 1 + 0.125 = 1000010001.001

2.1.8 真值与机器数

真值:符合人类习惯的数字
机器数: 数字实际存到机器里的形式,正负号需要被“数字化”
 

3. BCD码

3.1 概念

BCD : Binary-Coded Decimal,用二进制编码的十进制
 

3.2 8421码

十进制与二进制的快速映射

 0 - 9 有数据表示,但会出现6位冗余

因此1010 - 1111 是没有数据对应的,那么只要是相加出现这个范围内的数。就应该加6进行修正

3.3 余3码

余3码 = 8421码(0011)_{2}

 

 余3码 -> 无权码

3.4 2421码

2、4、2、1分别对应每一位的权值
表示0~4时最高位为0,表示5~9时最高位为1
 

4. 字符与字符串

计算机内存储数字、字母和符号共有128个字符,这些字符刚好是2的7次方个二进制可以编码。但是为了存入计算机内,通常要在最高位补0,凑足1B,因为1字节=8比特

4.1 ASCII码

 注意记忆重要的ASCII码

其中 32到126是可印刷字符,其余为控制字符或通信字符

4.2 汉字的表示和编码

1. 区位码

用93行93列的表格来存储这些部分常用中文汉字。 (0~93)

如果我们把开始位置加32,则从32到125. 就形成了区位码

但是还是有问题,如果是32到126这些字符和ASCII码又无法区分

则再加上128,即160~253,这样就不会和ASCII码矛盾了

因此形成了汉字机内码

2. 汉字机内码

4.3 字符串

 

5. 奇偶校验码

5.1 校验原理

1.某种因素导致传输的信息中的某个1变为0,或者0变为1。使得数据改变。

2.我们想到在数据前面加一个0或者1来作为校验位。那么还是四种ABCD字符,就有3bit来保存信息。

3.就会产生4种冗余状态,只要数据变成了这四种中任意一种,就检验出来它发生了改变。

4. 这就是校验的原理。

5.2 概念

由若干组代码组成的一个字叫码字。(如上图的,00,01,10,11)
将两个码字逐位进行对比,具有不同的位的个数称为两个码字间的距离。
一种编码方案可能有若千个合法码字,各合法码字间的最小距离称为“码距”

码距为d

当d=1时,无检错能力;当d=2时, 有检错能力;当d=3时, 若设计合理,可能具有检错、纠错能力
 

5.3 奇偶校验码

奇校验码: 整个校验码(有效信息位和校验位)中“1”的个数为 奇数
偶校验码: 整个校验码(有效信息位和校验位)中“1”的个数为 偶数
 

 

 

 

6. 海明校验码

6.1 求解海明码的步骤

6.1.1 确定海明码的位数

6.1.2 确定校验位的分布位置

校验位的下标i,放在2^{i-1}位置,相当于

 

6.1.3 求校验位的值 与纠错

 6.2 那如果有两个比特位跳变呢?

7. 循环冗余校验码(CRC)

7.1 循环冗余校验码的基本思想

 7.2 求循环冗余码

7.3 模2除法实例

 最终得到的001 余数就是校验位

因此最终循环冗余码为:

7.4 CRC的检错和纠错

双方已经约定好了生成多项式 / 除数 -> 1101

7.5 最终算得的余数和出错位没有必然关系

这个余数会发现,001和010有两个出错位对应,即当信息位超过一定限度时,没有纠错能力

这个一定限度是:

 但实际传输信息时,至少上千的比特要传输。显然CRC码无法满足,所以我们通常说CRC码没有纠错能力。但实际上是有的。

针对检查和纠错能力:

8. 定点数的表示

无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。
 

8.1 无符号数的表示范围

8.2 有符号数的定点表示

1. 注:可用原码、反码、补码三种方式来表示定点整数和定点小数。还可用移码表示定点整数
2. 若真值为x,则用[x]原、[x]反、[x]补、、[x]移分别表示真值所对应的原码、反码、补码、移码
 

8.3 原码

要注意,

定点整数的小数点在最后

定点小数的小数点在符号位后

真值 0 有 +0 和 -0 两种表现形式

 8.4 反码

反码:
若符号位为0,则反码与原码相同
若符号位为1,则数值位全部取反

 “反码”只是“原码”转变为“补码”的一个中间状态,实际中并没什么卵用

8.5 补码

补码:
正数的补码=原码
负数的补码=反码末位+1 (要考虑进位)

将负数补码转回原码的方法相同:尾数取反,末位+1

8.6 移码

移码:补码的基础 上将符号位取反。

注意:移码只能用于表示整数

 移码的作用

8.7 对比

原码和反码的真值0有两种表示
补码和移码的真值0只有一种表示
补码和移码可以多表示一一个负数

 加快解题的技巧

知识回顾 

 

 表示范围总结

8.8 补码的作用

加减运算中,我们能否用加法代替减法?来降低硬件成本的开销

8.8.1 模运算的性质

模 - a的绝对值 = a的补数 

8.8.2 数论中对于余数的定义

 x=qm+r

8.8.3 例子

1. 补码可以将减法操作转变为加法

2. 执行加法,符号位一起参与运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZuckD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值