笔记:计算机网络

计算机网络

### BCD码
8421码
8421码(有权码)的映射关系:
0123456789
0000000100100011010001010110011110001001

例题1:1+3=4 -> 0001 + 0011 = 0100
例题2:5+8=13 -> 原:0101 + 1000 =1101 修正过程:1101 + 0110 = 0001 0011
相加后不在映射表内,则需要在原结果后在加上0110
例题3:在计算机中的保存形式985:1001 1000 0101

余3码

余3码:8421码+(0011)无权吗
0123456789
0011010001010110011110001001101010111100

2421码

2421码
0123456789
0000000100100011010010111100110111101111

【注】2421码规定在5(1011)及以后的数字首位一定是1

ASCII码

ASCII码

1. 可印刷的字符:32~126,其余为控制字符
2. 大写字母:65(0100 0001) ~ 90(0101 1010)小写字母:97~122  

奇偶校验

检验原理简介
信息ABCD
编码00011011
2bit映射到4个合法状态
信息ABCD
编码100001010111
3bit映射到4个合法状态
(有4个冗余的非法状态)
1. 由若干位代码组成的字叫<mark>码字</mark>。    
2. 将两个码字逐位对比,具有不同的位的个数称为<mark>两个码字间的距离</mark>。  
3. 一种编码方案可能有若干个合法码字,各合法码字间的最小距离称为“<mark>码距</mark>”。
4. 当(码距)d=1时,无检错的能力;当d=2时,有检错的能力;当d=3时,若设计合理,可能有检错、纠错能力
奇偶校验码
1. 奇校验码:整个校验码(有效信息位数和校验位)中“1”的个数为奇数。
2. 偶校验码:整个校验码(有效信息位数和校验位)中“1”的个数为偶数。  

![奇偶校验码](https://img-blog.csdnimg.cn/20210105221341860.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01hZGVBbmRDcmVhdGU=,size_16,color_FFFFFF,t_70#pic_center)
【例题1】给出两个编码1001101和1010111的奇校验码和偶校验码。

设最高位为校验码,其余7位是信息位,则对应的奇偶校验码:

奇校验码:11001101 01010111

3. 偶校验的硬件实现:各信息进行异或运算(模2加)运算,得到的结果即为偶校验位
   - 异或运算:1⊕1=0;1⊕0=1(相同为1,不同为0)
   - 进行偶校验结果为为0这编码传输正确,结果为1说明错误
   - 奇偶校验只能检测出奇数个传输位的错误,若有偶数个传输位错误则不能检测数

海明校验码

海明码的设计思路简介

将信息位分组进行偶校验->多个校验位->多个校验位标注出错位置

【问题1】:一串编码n位需要多少个校验位?

  • 信息位n位,需要k为校验位,k位校验码能表示2k种状态
海明码求解步骤
确定校验码数量
确定校验位的分布
求校验位的值
检错纠错

【例题】信息位1010

  1. 确定海明码位数:2k≥n+k+1

n=4–>k=3

设信息位D4D3D2D1,共4位,校验位为P3P2P1,共3位,对应的海明码位H7H6H5H4H3H2H1

  1. 确定校验位分布
H7H6H5H4H3H2H1
D4D3D2P3D1P2P1
1010

校验位Pi放在海明位号为2i-1的位置上

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

  1. 求校验位

    • 3.1将信息位所对应的海明码下标用二进制表示

      • H3:011

      • H5:101

      • H6:110

      • H7:111

    • 3.2从左往右将同一列二进制分为一组

      • H3011–D1

      • H5101–D2

      • H6110–D3

      • H7111–D4

        数1(D1数2(D2数3(D3数4(D4
        第一列1101
        第二列1011
        第三列0111

      表1

      信息位表
      D1D2D3D4
      0101
  • 3.3将表1中每列中数为1所对应的信息位的值进行异或运算

    • P1 = D1 ⨁ D2 ⨁ D4 = 0 ⨁1 ⨁ 1 = 0
      • P2 = D1 ⨁ D3 ⨁ D4 = 0 ⨁ 0 ⨁ 1 = 1
      • P3 = D2 ⨁ D3 ⨁ D4 = 1 ⨁ 0 ⨁ 1 = 0
    H7H6H5H4H3H2H1
    D4D3D2P3D1P2P1
    1010010
  1. 检错纠错

    • 将3.3中的运算式子加上对应的校验位进行异或运算,得到结果全为0说明信息无误

      • S1 = P1 ⨁ D1 ⨁ D2 ⨁ D4 = 0 ⨁ 0 ⨁1 ⨁ 1 = 0
      • S2 = P2 ⨁ D1 ⨁ D3 ⨁ D4 = 1 ⨁ 0 ⨁ 0 ⨁ 1 = 0
      • S3 = P3 ⨁ D2 ⨁ D3 ⨁ D4 = 0 ⨁ 1 ⨁ 0 ⨁ 1 = 0

      接收到的的信息:1010010

    • 如果得到的信息有去一位不为0

      【例】接收到的信息为:1010000

      • S1 = P1 ⨁ D1 ⨁ D2 ⨁ D4 = 0 ⨁ 0 ⨁1 ⨁ 1 = 0

      • S2 = P2 ⨁ D1 ⨁ D3 ⨁ D4 = 0 ⨁ 0 ⨁ 0 ⨁ 1 = 1

      • S3 = P3 ⨁ D2 ⨁ D3 ⨁ D4 = 0 ⨁ 1 ⨁ 0 ⨁ 1 = 0

        从S3到S1的结果连接起来的:010 (2),组成的二进制指明海明码的第2位H2出现错误

  2. 海明码检错、纠错能力

    • 检错能力——2位
    • 纠错能力——1位
加上“全校验码”的海明码
H8H7H6H5H4H3H2H1
PD4D3D2P3D1P2P1
11010010
  • 全校验码:通过所有海明码的值进行偶校验得到全校验位的值

    • H8 = 0 ⨁ H7 ⨁ H6 ⨁ H5 ⨁ H4 ⨁ H3 ⨁ H2 ⨁ H1
    • H8 ⨁ H7 ⨁ H6 ⨁ H5 ⨁ H4 ⨁ H3 ⨁ H2 ⨁ H1 = 0
  • 校验方程 :

    • S1 = P1 ⨁ D1 ⨁ D2 ⨁ D4 = 0 ⨁ 0 ⨁1 ⨁ 1 = 0
    • S2 = P2 ⨁ D1 ⨁ D3 ⨁ D4 = 1 ⨁ 0 ⨁ 0 ⨁ 1 = 0
    • S3 = P3 ⨁ D2 ⨁ D3 ⨁ D4 = 0 ⨁ 1 ⨁ 0 ⨁ 1 = 0
      • S3S2S1 = 000且全体偶校验成功 ->无错误
      • S3S2S1 ≠ 000且全体偶校验失败->有1位错误,纠正即可
      • S3S2S1 ≠ 000且全体偶校验成功 ->有2位错误,需重传

循环冗余验证码

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

循环冗余校验码

  1. 发送方和接收方约定一个“除数”
  2. K个信息位+R位校验位作为“被除数”,添加校验位后需保证除法的余数为0
  3. 收到信息后,进行除法检查余数是否为0
  4. 若余数非0说明出错,则进行重传或者纠错

【例题】设生成多项式位G(x) = x3 + x2 + 1,信息码101001对应的的CRC码。

  1. 确定K、R以及多项式对应的二进制码

    • K = 信息码的长度 = 6
    • R = 生成多项式的最高次幂 = 3
    • ->校验码位数N = K + R = 9
    • 生成多项式G(x) = x3 + x 2 + 1 = 1 * x3 + 1 * x2 + 0 * x1 + 1 * x0,对应的二进制码:1101
  2. 移位

    • 信息码左移R位,低位补0
  3. 相除

    • 对移位后的信息码,用多项式进行模2除,产生余数 。

循环冗余校验码

对应的CRC码是101001 001
  1. 检错和纠错

    • 发送:101001 001 记为:C9C8C7C6C5C4C3C2C1

    • 接收:如下图,余数为000,代表没错

      用1101进行模2除
      101001 001
      余数为000
    • 接收:如下图,余数为010,代表出错

      用1101进行模2除
      1010010 11
      余数为010

定点数的表示

定点数 vs 浮点数

定点数:小数点的位置固定 Eg: 996.007——常规计数

浮点数:小数点的位置不固定 Eg:9.96007*102——科学计数法

本节总览
定点数的表示
无符号数
有符号数
原码
反码
补码
移码
无符号数的表示

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

1001 1100B

=1 * 27 + 0 * 26 + 0 * 25 + 1 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 0 * 20

=156D

21621521421321221121029282726252423222120
65535327681638481924096204810245122561286432168421

表示范围

​ 8位二进制:28种不同状态

​ 0000 0000~1111 1111

​ 0 ~ 255 = 28 - 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值