loyio / masterNotes

Sum up some notes
MIT License
3 stars 0 forks source link

数据的表示和运算 #10

Closed loyio closed 3 years ago

loyio commented 3 years ago

进位计数制

最古老的计数方法

image-20210121151233786

image-20210121151251653

十进制计数法

古印度人发明的阿拉伯数字:0,1,2,3,4,5,6,7,8,9 符号反映权重

符号所在的位置也反映权重


推广:r进制计数法

基数:每个数码位所用到的不同符号的个数,r 进制的基数为 r

image-20210121151715378

二进制:

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


任意进制→十进制

image-20210121152632862


二进制←→八进制、十六进制


二进制→八进制

3位一组,毎组转换成对应的八进制符号

image-20210121152810088

二进制→十六进制

4位一组,毎组转换成对应的十六进制符号

image-20210121152946651

八进制→二进制

每位八进制对应的3位二进制

image-20210121153015147

十六进制→二进制

每位十六进制对应的4位二进制

image-20210121153042957



各种进制的常见书写方式

image-20210121153205281


十进制→任意进制

image-20210121153343147

image-20210121153612170


真值和机器数

真值:符合人类习惯的数字

机器数:数字实际存到机器里的形式,正负号需要被“数字化”

loyio commented 3 years ago

BCD码

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

二进制:0,1 方便计算机处理

十进制:0,1,2,3,4,5,6,7,8,9 符合人类习惯

image-20210121154602467转换麻烦

快速转换:一一对应

8421码的映射关系:

image-20210121154648045

image-20210121154732669手算方法

image-20210121154854855机算方法

不在映射表里 8421码中 1010~1111 没有定义

+6 +0110进行修正

注:若相加结果在合法范围内,则无需修正。


余三码(无权码)

image-20210121155415882


2421码:改变权值定义

image-20210121155528881

总结

image-20210121155646172

loyio commented 3 years ago

字符与字符串

ASCII码

image-20210121155856383

image-20210121155939550

可印刷字符:32~126,其余为控制、通信字符

数字:48(0011 0000)~57(0011 1001)

大写字母:65(0100 0001)~90(0101 1010)

小写字母:97(0110 0001)~122(0111 1010)


汉字的表示和编码

GB 2312-80 : 汉字+各种符号共7445个

区位码:94个区,每区94个位置

image-20210121160751552

字符串

image-20210121161548996

总结

image-20210121161617597

loyio commented 3 years ago

奇偶校验码

校验原理简介

image-20210121161753578

由若干位代码组成的一个字叫码字。

将两个码字逐位进行对比,具有不同的位的个数称为两个码字间的距离。 一种编码方案可能有若干个合法码字,各合法码字间的最小距离称为“码距”。

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


奇偶校验码

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

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

image-20210121162349983

偶校验的硬件实现:各信息进行异或(模2加)运算,得到的结果即为偶校验位

image-20210121162604102image-20210121162621777


总结

image-20210121162853556

loyio commented 3 years ago

海明校验码

海明校验码思路简介

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

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

image-20210121163040019


海明码设计思路:将信息位分组进行偶校验 —> 多个校验位—>多个校验位标注出错位置

多个校验位能携带多种状态信 息,(对/错,错在哪)


需要多少校验位?

image-20210121163325536

image-20210121163343713


海明码求解步骤

信息位:1010

1.确定海明码的位数: image-20210121163552841

n=4—>k=3

设信息位D4 D3 D2 D1 (1010),共4位,校验位P3 P2 P1 , 共3位,对应的海明码为H7 H6 H5 H4 H3 H2 H1。

2.确定校验位的分布

image-20210121163737150

校验位image-20210121163818655放在海明位号为image-20210121163850415的位置上

信息位按顺序放到其余位置

3.求检验位的值

image-20210121164254721

4.纠错

image-20210121164340058

image-20210121164530273


补充

海明码的检错、纠错能力:

纠错能力——1位

检错能力——2位

无法区分到底是1 位错还是2位错


image-20210121164855739

需加上“全校验位”,对整体进行偶校验


总结

image-20210121165029041

loyio commented 3 years ago

循环冗余校验码

循环冗余校验(Cyclic Redundancy Check, CRC)

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

image-20210121165254987

数据出错导致余数改变——检测到错误

image-20210121165312708

循环冗余校验码的思想:

数据发送、接受方约定一个“除数”(二进制)

K个信息位+R个校验位 作为“被除数”,添加校验位后需保证除法的余数为0

收到数据后,进行除法检查余数是否为0

若余数非0说明出错,则进行重传或纠错


循环冗余校验码

image-20210121165613496

模2除法

image-20210121170002473

对应的CRC码: 101001 001


4.检错和纠错

image-20210121170319996



image-20210121170744066

image-20210121170816132


总结

image-20210121171030510