进制转换及如何求校验码(海明校验码及循环冗余校验CRC码)



前言

了解进制间的相互转换:

  1. 二进制与八、十六进制间的相互转换
  2. 任意进制转换为十进制
  3. 十进制转换为任意进制数

了解如何求海明校验码及循环冗余校验CRC码


以下是本篇文章正文内容

一、进制转换

1.1 二进制转换为八进制数和十六进制数

思路:分为小数部分及整数部分,整数部分:从小数点往左分组,将一串二进制数分为3位(八进制)一组4位(十六进制)一组在数的最左边根据需要补0。小数部分:从小数点后开始分组,适当在最右边补0

举例
1.二进制数(11111011.01110)转换为八进制数(三位一组)
在这里插入图片描述

2.二进制数(11111011.01110)转换为十六进制数(四位一组)
在这里插入图片描述

1.2 任意进制数转换为十进制数

思路:将任意进制的各位数码与他们的权值相乘并将他们相加得到十进制数。

举例:
1.二进制数(101001.01)转换为十进制数
在这里插入图片描述
2.八进制数(373)转换为十进制数
在这里插入图片描述

3.十六进制数(fb)转换为十进制数

在这里插入图片描述

1.3 十进制转换为任意进制

思路:1.整数部分采取除基取余,小数部分采用乘基取余。

2.拼凑法

1.举例十进制数(254.25)转换为二进制数
在这里插入图片描述
拼凑法:254.25 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 0.25

特殊情况(小数乘不到1无限循环,无法用二进制精准表示,例如十进制数0.3)

在这里插入图片描述
3.举例十进制数(254.25)转换为八进制数
在这里插入图片描述
2.举例十进制数(254.25)转换为十六进制数
在这里插入图片描述

二、校验码求取

2.1海明校验码

ps:异或((1 0 得1) 0 0 或1 1 得 0)
获取步骤

  1. 根据2^k >= n + k + 1 获取 k,n为有效信息位数
  2. 确定海明校验码的分布位置
  3. 分组形成校验关系
  4. 获得校验位值

举例带校验数据(10101011)若采用海明校验,其海明码为?
在这里插入图片描述

代码如下(示例):

2.2循环冗余校验CRC码

思路:在k位信息码后拼接R位校验码,在与生成多项式做模二除运算(异或运算)求得余数为校验码

步骤:

  1. 移位(左移R,低位补0)
  2. 相除(对最高几位做异或运算 ,除数右移一位,余数最高为1,商为1,对余数做异或,若商为1,对0做异或 循环至余数小于除数时 ,把余数作为校验位)

举例生成多项式为10011,带校验的数据为(10101011),求它的CRC码

在这里插入图片描述

总结

考研复习,参考教材王道2022计算机组成原理 笔记软件 :Notability

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值