目录

1.数制的转换

1)二,八,十六进制进制转十进制

加权系数求和法

2)十进制转二,八,十六进制

除基取余法(短除法)

减权定位法

3)二,八,十六进制的相互转换

2.BCD码

3.格雷码

4.原码,反码,补码

1)原码

2)反码

3)补码

总结

5.定点数和浮点数

1)定点表示法

2)浮点表示法

1.数制的转换

1)二,八,十六进制进制转十进制

加权系数求和法

上图就是加权系数求和的方法,就是把二进制数各位的权值乘上各位的系数,再加起来就是十进制数。来看一个简单的例子

100.01是一个二进制数,个位的权值和系数分别是和1,十位权值和系数分别是和0,百位权值和系数分别是和1,小数第一位权值和系数分别是和0,小数第二位权值和系数分别是和1

所以根据加权系数求和的方法:将各位的系数和权值相乘然后相加,最后得到十进制的结果

八进制和十六进制的方法相同,只是八进制的权为,十六进制的权为下面再举两个例子


2)十进制转二,八,十六进制

除基取余法(短除法)

具体做法:把十进制数分为整数和小数部分,整数部分每次除以基数,保留余数,最后从后往前读,就是整数部分的X进制数;小数部分每次乘基数,取整数部分,最后从前往后读为小数部分。两部分组合在一起就是所求的数。

 注意:

1.计算小数部分过程中,计算的整数不应该大于等于基数*(比如上图1.36*2=2.72,整数出现了2),这时应该将整数mod基数(就是除以基数,取余数)。

2.还有小数部分可能乘不尽,这是要注意题目要求保留几位小数

十转八和十六同理,只是除数和乘数变为了8和16


减权定位法

方法:拿二进制举例,我们可以轻松算出或者记得2的幂次方等于多少(比如=8,=16……2=1024等),所以我们可以把一个数拆分成几个基数为2的权相加的形式,然后根据权在二进制中的位置,从而写出二进制数。举个例子

122.5 = 64 + 32 + 16 + 8 + 2 + 0.5=  +  + ++ += 1111010.1


3)二,八,十六进制的相互转换

我们知道八进制一位只能表示0~7, 十六进制一位只能表示0~15,对应二进制最多需要三位和四位数表示,所以二进制转八、十六进制时,可以将二进制数按三位、四位一组分开,分别求出再合起来,反之八、十六转二进制是将一位数转化为三位和四位的二进制数,最后合起来。(整数部分从各位开始分,小数部分从第一位开始分,最后位数不足补0)

举例:

二进制数:10100010.01

二转八:010100010.010 = 242.2

二转十六:10100010.0100 = A2.5

2.BCD码

简单的说,BCD码就是将十进制数的每位数字转换为四位的二进制数,常见的有8421,2421,5421和余3码

8421码:四位数的权值分别是8、4、2、1,就是每位数正常转化为四位二进制数

5421码:四位数的权值分别是5、4、2、1,也就是前五位和8421相同,以后1000代表5,和后三位表示的数加起来代表现在的数。

2421码:也称为对称反码,四位数的权值分别是8、4、2、1,也就是前五位和8421相同,有0和9,1和8,2和7,3和6,4和5互为反码。

余三码:在8421码的基础上加3

下面有一张表,大家可以对比看一下

3.格雷码

把循环节竖着排,横着看过来就是这个数的格雷码,举一个三位的例子

红黑蓝分别是三个循环节,000,0001,011,010分别就是1,2,3,4的格雷码。

可以发现格雷码相邻代码间只有1位不同+,如果发生错误更易于发现,因此格雷码是一种可靠性代码。

000

001

011

010

4.原码,反码,补码

真值和机器数:真值就是我们平常使用的数,由符号和数值组成;机器数是计算机内使用的数,数字用二进制表示,正号用0表示,负号用1表示

1)原码

注意:正号用0表示,负号用1表示,最高位为符号位

真值 原码
+1011 01011
-1011 11011
+0.1011 0.1011
-0.1011 1.1011

2)反码

正数和原码相同,负数符号位不变,全部取反

原码 反码
01011 01011
11011 10100
0.1011 0.1011
1.1011 1.0100

3)补码

正数和原码相同,负数符号位不变,全部取反后再加1(就是反码加一)

快速求法:负数时,尾数自低位向高位,第一个1以前的所有位(不包括符号位)全部取反。

优点:克服了原码运算的缺点,能够让符号位一起参与运算。

原码 反码 补码
01011 01011 01011
11011 10100 10101
0.1011 0.1011 0.1011
1.1011 1.0100 1.0101

总结

1)正数的原码,反码,补码相同

2)原码和反码表示0的数有两个,补码只有一个

3)原码、反码表示正负数的范围(对称):

              +(-1)~ –(-1)

补码表示正负数的范围(非对称):

              +(-1)~ – () (注意)


5.定点数和浮点数

1)定点表示法

定点表示法:由程序设计者约定,该程序中所有数的小数点固定在同一位置不变。

定点小数和顶点整数的范围(设字长为n+1位):

定点小数:1-~-(1-)

定点整数: -1~- ( -1)

 8位定点数原码和补码的表示范围

2)浮点表示法

由于定点数表示的范围有限,所以我们引进浮点数来表示更大的数

浮点数的表示类似于科学计数法,r表示底数(类似于1.22中的10),二进制中就是2;

E表示阶数( 类似于1.22中的6);M表示尾数 ( 类似于1.22中的1.22)

规格化 

规格化:计算机规定浮点数尾数部分用纯小数形式表示。

规格化的表示要求:

这是老师的课件,我解释一下:对于原码,小数点前表示符号位,小数点后表示数值,但数值必须做到有意义,所以小数点后的第一位数不能为0;对于补码,正数的要求和原码一致,负数规定小数点后的第一位必须是0(不用纠结,就是这样规定的,这样方便在计算机中操作),所以-0.5不能用补码的规格化表示


规格化浮点数取值范围

可以看到因为规格化负数用补码表示时,并不能取到-1/2,所以只能取到 -(1/2+)这样无限接近-1/2的数

最后来看一个规格化的例题

X=-68(十进制)表示成浮点数,具体格式为:阶码为4位,尾数为8位,都用补码表示。

先把-68转化为二进制:-1000100

然后进行规格化处理(先用原码):011111000100

最后转化为补码:011110111100

<阶码为正不变,尾数符号不变,数值取补码>

先介绍到这里,这里肯定有许多不足,希望大家指出,大家有问题请在评论区留言

数制和码制(数制的转换的方法,BCD码<8421,2421,5421,余三码>,格雷码,原码,反码,补码,定点数和浮点数)相关推荐

  1. [数制与码制]: 有关十进制转换和二进制负数小数补码表示

    文章目录 关于十进制转换 关于二进制负小数补码表示 关于十进制转换 数电第一课,关于各进制数的转换:2,8,16进制的转换也不用说什么,主要是关于10进制转换其他进制会麻烦一点: 而在这之间,由其他进 ...

  2. 机器数的三种表示形式---原码、补码、反码和移码

    疫情严重,没去上班,总结学习一下.武汉加油,中国加油. 一.真值和机器数 介绍机器数的三种表示形式之前,先介绍一下真值和机器数. 带+.-符号的数叫真值,把符号数字化得到的数称为机器数(1表示-,0表 ...

  3. java 颜色 16进制转换_Java中Color和16进制字符串互相转换的方法

    1.原理 主要是调用了toHexString(将int类型转为16进制字符串).parseInt(将字符串解析为int)这两个方法. 2.代码 public static void main(Stri ...

  4. 8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法

    8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法 1. 有权码和无权码的包括 2.各种码值的介绍 8421码的简介 8421码又称为BCD码,是十进代码中最常 ...

  5. 计算机网络中的原码、反码、补码

    写在前面 原码.反码.补码是计算机组成原理中的概念,是计算机网络的基础知识之一.这些概念是为了处理二进制数的符号位而引入的,常用于计算机中的整数运算,也常用于数据存储和传输等领域.因此,了解和掌握这些 ...

  6. 超详细介绍!!!带你认识各种进制数的及其转换以及原码,反码,补码

    1.本文详细介绍了二进制,八进制,八进制和他们之间的相互转换 2.也详细介绍了原码,反码,补码以及它们之间的相互转换,让你更加了解计算机数据的底层运行逻辑 目录 一:认识各种进制数 1.十进制数 2. ...

  7. (三)《数字电子技术基础》——码制

    目录 码制定义 二-十进制码(BCD) 8421-BCD 码 2421-BCD 码 余3码 余3循环码 格雷码 检错码和纠错码 误差检验码 误差纠错码 字符-数字代码 码制定义 码制:即用数字技术来处 ...

  8. 一维条码与二维条码的码制区别

    一维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,其一定的高度通常是为了便于阅读器的对准. 一维条码的应用可以提高信息录入的速度,减少差错率,但是一维条码也存在一些不足之 ...

  9. 原码、补码、反码的转换

    1.原码 (1)一个正数,他的原码就是它对应的二进制数字. (2)一个负数,按照绝对值大小转换成的二进制数,然后最高位补1,就是负数的原码. 2.反码 (1)正数的反码与原码相同(这是规定). (2) ...

最新文章

  1. idea命令行运行多个客户端_推荐一款神仙颜值的 Redis 客户端工具,开源啦
  2. scrollview 与 listView 的显示不全问题
  3. Codeforces 739B Alyona and a tree (树上路径倍增及差分)
  4. 宝马纯电动i4原型车谍照曝光 预计2021年上市
  5. 不服气不行,同样是码农,字节程序员的年薪居然达247万
  6. 换种思维看互联网公司分配时间!
  7. 第 16 章 垃圾回收相关概念
  8. MT6580 Android8.1调试移植费恩格尔指纹驱动
  9. margin-top的兼容问题
  10. NFine框架因新增页面而显示无法链接资源
  11. 金融机构如何应对核心系统分布式智能化升级大潮?
  12. 如何用计算机模拟光的传播,菲涅尔计算全息干涉图的制作与模拟再现.doc
  13. 奇怪的同床人:指纹现象……或state.gov与facebook.com
  14. java-No route to host 解决办法
  15. 北京交通大学万怀宇:时空交通数据预测方法及应用
  16. mysql隔离级别到底是什么
  17. 细说http状态码之301,304
  18. 吗咿呀嘿-用js来搞个简单的人脸识别
  19. IS61LV25616芯片技术手册
  20. vacuum freeze

热门文章

  1. 基于LSTM实现乐器声音音频识别
  2. win10每次开机后,D、E、F盘就不见了,需要进入“磁盘管理”重新分配
  3. 基于组态王的过程控制——以巧克力牛奶的生产为例
  4. 企业微信h5配置微信sdk(openEnterpriseChat),拉起外部联系人私信聊天。
  5. Nvidia Xavier平台CAN收发控制器调试记录
  6. 数据中心液冷方式优缺点对比及浸没式液冷表面强化处理
  7. cocos creator动态加载DragonBones
  8. 操作系统----大内核与微内核
  9. AMD Radeon GPU Injector tool | 老旧 AMD 显卡驱动工具
  10. Unity 实现游戏中多相机屏幕CutIn效果