数制与编码--数码和字符的代码表示
1.十进制数的二进制编码
1.1 8421 BCD码
简称8421码,按4位二进制数的自然顺序,取前10个数依次表示十进制的0-9,后6个数不允许出现,若出现则认为是非法的或错误的。8421码是一种有权码,每位有固定的权,从高到低依次为8,4,2,1,如:8421码0111=
8421码的特点:
(1)与四位二进制数的表示完全一样
(2)1010-1111为冗余码
(3)8421码与十进制码的转换关系为直接转换关系,例:
(4)运算时按逢10进1的原则,并且要进行调整。调整原则:有进位或出现冗余码时,加法+6调整,减法-6调整
1.2 余三码
余三码由8421码加3形成。特点:
(1)是一种无权码
(2)有6个冗余码(0000、0001、0010、1101、1110、1111)
(3)对9的自补码。例如:,,,即0111按位取反
(4)如果两个余3码相加没有进位,则和数要减3,否则和数要加3
1.3 2421 BCD码
简称2421码。按4位二进制数的自然顺序,取前8个数依次表示十进制的0~7,8和9分别为1110和1111。其余6个数不允许出现,若出现则认为是非法的或错误的。这只是2421码的一种编码方案。
2421码是一种有权码,每位有固定的权,从高到低依次为2,4,2,1,如:
2421码0111=
2421码1110=
1.4 几种常见的十进制代码
2.可靠性编码
能减少错误,发现错误,甚至纠正错误的编码称为可靠性编码。
2.1 格雷码
在一组数的编码中,如果任意相邻的代码只有一位二进制数不同,即为格雷码。
典型二进制格雷码编码规则:
例如13的格雷码:
1 1 0 1
1 0 1 1
典型二进制格雷码转换成二进制数的方法:
例如7的典型格雷码为0100
0 1 0 0
0 1 1 1
格雷码与二进制代码的比较
2.2 奇偶校验码
由信息位和校验位(冗余部分)两部分组成。校验位的取值可使整个校验码中的1的个数按事先的规完成为奇数或偶数。奇偶校验码可发现奇数位错误,但是不能知道是哪一位出错,不能发现偶数位错误。
2.3 海明码
可以检验一位错误并且可以定位的可靠性编码。
结构:信息位(4位)+校验位(3位) (以BCD码为例)
组织:I4 I3 I2 P3 I1 P2 P1
校验规则:
例:求0100的海明码
P3=1,P2=1,P1=0,组织为0101(P3)01(P2)0(P1)
海明码校验和:
无错,出错。(i=0,1,2)
海明码错误定位:为000说明无错,为111至001表明一位出错位置。
例:0 0 0 1 1 1 0
易得,,,说明第五位出错,即出错
海明码信息位与校验位的关系:
,其中表示海明码位数+1,k为校验位位数,n为信息位位数。
__EOF__

本文链接:https://www.cnblogs.com/KaguraSakura/p/16615129.html
关于博主:hello~好久不见,喜欢的话点个赞吧
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!