我是靠谱客的博主 无限星月,最近开发中收集的这篇文章主要介绍一文弄懂数制、码制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数字逻辑电路——数制与码制总结

1.进制转换

● 十进制整数转二进制

例:将十进制47转二进制

47÷2=23…1

23÷2=11…1

11÷2=5…1

5÷2=2…1

2÷2=1…0

1÷2=0…1 直到商为0,停止,然后从下往上写即可 ,即101111

十进制小数转二进制

例:将十进制0.125转二进制

利用乘2取整法。

0.125 x 2=0.25 ——取整—— =0

0.25 x 2=0.5 ——取整—— =0

0.5 x 2=1 ——取整—— =1(直到整数为止)

然后从上往下写作为小数部分 ,即0.001

● 二进制转八进制

例:将二进制101111转为八进制

整数部分操作:从小数点往左数,每三位二进制数为一组,最后不足三位的补0,分别算各组对应的十进制数,合起来(不是加和,是直接合起来)就是对应的八进制数。

比如在二进制101111中,往左数每三位分一组,即101、111,分别对应的十进制数是5、7,所以结果就为八进制下的57.

这是刚好满足三位可分的情况,我们再来看看不足三位的情况,比如将二进制1011111转换为八进制。

往左数每三位分一段,即001(注意是往左补0)、011、111,对应的十进制是1、3、7,所以结果就是八进制下的137.

再来看看小数,比如将二进制0.1101转换为八进制

小数点开始往右每三位划分,即110,100(往右补0),对应的十进制是6、4,所以结果是八进制下的0.64

● 二进制转十六进制

方法同转八进制的操作是一样的!!!!但是转十六进制时就不是每3位分一组了,而是每4位分一组,不足4位的补0,剩下的操作都是一样的哦!

2.码制

2.1 机器码

● 原码

原码共有8个数字,原码的第一位是符号位(正数为0,负数为1),后面7位是原数的绝对值(二进制表示),一般机器码的后面加上字母B。

例如:十进制+7的原码是 **0 **0000111 B(注意第一位是符号位,0代表正数)

因为表示数值的位数有7位,所以原码的表示范围就是 -127 – +127

● 反码

正数的反码与其原码相同!!

负数的反码是对其原码逐位取反后所得,注意在取反时符号位不变哦~

比如:十进制数+7的反码与原码相同,就是0 0000111 B

那么十进制数-7的反码呢?我们先看其原码,是:1 0000111B ,所以其反码就是除符号位的取反,就是:1 1111000 B

同理,二进制反码表示范围也是 -127 – +127

● 补码

正数的补码与其原码相同!!

负数的补码就是在其反码末位+1,符号位不变!!所以在求负数的补码时,就要一层套一层,先求原码,再求反码,这样不容易出错。

例如:十进制数+7的补码与原码相同,就是0 0000111 B

那么十进制数-7的补码呢?我们先看其原码,是:1 0000111 B,进而求得反码:1 1111000 B,从而求得补码:1 1111001 B

注意:二进制补码表示范围是 -128 – +127 (-128代替了0)

● 原码、反码、补码间的转换

显然,正数的原码、反码、补码都是一样的,所以不需要转换~~

负数呢,就按照上面的操作来就行啦~~要注意的是,求补码时在末位加1的操作是满足二进制逢二进一,如二进制101在末位+1后应该变成110

2.2 二–十进制BCD码

用4位二进制数表示1位十进制数的代码称为BCD码。直接上表!!!~~~

在这里插入图片描述

8421
0110

我来解读一下下,比如十进制的6,8421码下的0110怎么来的呢?就是对应位数和8,4,2,1相乘再相加就能得到十进制的6了!

比如这里的1 x 0+2 x 1+4 x 1+8 x 0 = 6!!其他几个都是一样的道理哦~~

而余3码呢?

就是每一个二进制数都比其对应的8421BCD码二进制数多3,所以称位余3码啦~~

注意,以上4种码只对应十进制的0-9,其他编码称为无效码或冗余码!!

2.3 可靠性代码

● 格雷码

特点:相邻两个码之间仅有1位不同,其余各位均相同,属于一种错误最小化的可靠性编码。

● 奇偶校验码

奇偶校验码是奇校验码和偶校验码的统称。二进制信息在传送时,可能会发生1变成0或0变成1的问题,所以我们有以中国最简单的检错方法,就是奇偶校验。

奇偶校验码=信息码+校验码(0或1),也就是在原二进制码后面补上一位作为校验码,具体补1或是补0的规则根据奇校验或偶校验来定。

比如这个表格:

原始码奇校验码(即补上检验位后,整个二进制数里含1的个数是奇数)偶校验码
10110001011000 0 (末位加粗的就是检验位,因为信息码中有3个1(奇数),故检验位只能补0,这是奇检验)1011000 1
00110100011010 0 (同理)0011010 1

以上就是数制和码制的相关内容啦~~希望能帮助到大家!!

噢噢噢对了,想第一时间了解硬核技术教程的话扫一扫关注我们的公众号哦哈哈哈哈~~,机器君和灯泡小e等着你的加入!里面有很精彩的教程和不定时更新的随笔、小说、作画!!!

在这里插入图片描述

最后

以上就是无限星月为你收集整理的一文弄懂数制、码制的全部内容,希望文章能够帮你解决一文弄懂数制、码制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部