十进制0-9与其数字一一对应的二进制是什么?

我们日常生活中习惯于使用十进制数字,所以当我们用高级计算机编程语言编写程序时也习惯于使用十进制数字。但是计算机、单片机或嵌入式系统等硬件设备只能识别二进制的机器语言,所以当我们用高级程序语言写好代码后,需要用各种特定的编译软件将高级程序语言(例如C语言)编译为机器语言,其中的十进制数字就需要编译为二进制数字。用二进制编码表示十进制数字被称为二进制编码十进制,用英文写作为Binary Coded Decimal,首字母缩写后简写为BCD,所以也通常被称为BCD码。

BCD编码采用4位二进制数字表示一位十进制数字,十进制数制中0~9共10个数字,但对4位二进制数进行组合可以组合出16种代码,所以肯定有6种编码是冗余的。下面分布介绍8421码、余3码、2421码、5211码和余3循环码的编码规则。

8421码,是最常用的二进制编码,4位二进制数字中的1都是代表一个固定数值,把每一位的1所代表的十进制数加起来,得到的结果就是这4位二进制数字所代表的十进制数码。4位数字从左到右每一位的1分别表示8(2的3次幂),4(2的2次幂),2(2的1次幂),1(2的0次幂),所以把这种编码方式叫做8421码,下表为十进制数与8421码的一一对照。

余3码,是在8421码的基础上加十进制数3(二进制数0011)形成的一种无权重码,因为它的每一个码都比所对应8421码多3,所以叫做余3码,下表为十进制数与余3码的一一对照。余3码是一种9的自补代码,例如0和9,1和8,2和7,3和6,4和5的余3码的每一位都是严格互补的。

2421码,是一种有权码(8421码也是一种有权码,8421码从左到右,第1-4位的1代表的权重分别为8、4、2、1),2421码从左到右,第1-4位的1代表的权重分别为2、4、2、1。将4位2421码4位数字对应的权重相加即可计算出其所对应的十进制数,下表为十进制数与2421码的一一对照。2421码是一种9的自补代码,例如0和9,1和8,2和7,3和6,4和5的余3码的每一位都是严格互补的。

5211码,是另一种有权代码,5211码从左到右,第1-4位的1代表的权重分别为5、2、1、1,下表为十进制数与5211码的一一对照。

余3循环码,是一种权重变化的码,每一位的1不代表固定的数值,十进制数字0-9,相邻两数字对应的相邻代码之间只有一位的状态不同。余3循环码是在余3码的基础上取异或后得到的。求余3循环码时,从左到右,第一位1与余3码在同一位,从余3码的第二位开始与前一位进行异或运算,可求得余3循环码在该位的值。异或(xor)运算是一个数学逻辑运算,例如:如果x、y两个变量的值不相同,则异或的结果为1。如果x、y两个变量的值相同,异或的结果为0。下表为十进制数与余3循环码的一一对照。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。





22.控制标志位 IF/DF作用,怎么改变?(应该不考,毕竟书上没有提到)

DF标记块传送是从低地址向高地址传,还是从高地址向低地址传。

IF可以屏蔽 可屏蔽中断请求INTR

如果外设有可屏蔽中断请求INTR,而此时CPU内IF=0,那么CPU不会响应中断

只有可屏蔽中断请求INTR和IF有关系,

内中断和不可屏蔽中断NMI,都不受IF的影响

CF针对无符号数(将寄存器中的操作数都看作是无符号数)

OF针对有符号数(将寄存器中的操作数都看作是有符号数)

24. 计算机怎么判断两个数相加是否超出了范围?

CF位来判断无符号数运算的溢出,OF位来判断补码运算是否溢出。

25. 怎么修改IP寄存器?

IP寄存器的值通常不能直接被修改,需要使用call,ret,jmp等控制转移指令类修改。

不是,第三章最后提到的媒体寄存器是256位的,段寄存器(有的说32位,有的说16位)

CPU的字长 == 通用寄存器的位宽

27. 请列出C语言的所有操作/指令,与汇编语言对比,说明汇编语言的优点

重点:逻辑操作/位操作

28. 操作数的寻址方式有哪几种?

29. 一/二维数组采用什么寻址方式?

30.结构体的某一个整型成员采取什么寻址方式?

31. 结构体的整形数组采用什么寻址方式?

一个C生成的执行程序是多少位的是由谁来决定的?

(A)CPU (B)OS (C)编译器 (D)源程序

27. 请列出C语言的所有操作/指令,与汇编语言对比,说明汇编语言的优点

重点:逻辑操作/位操作

28. 操作数的寻址方式有哪几种?

29. 一/二维数组采用什么寻址方式?

30.结构体的某一个整型成员采取什么寻址方式?

31. 结构体的整形数组采用什么寻址方式?

一个C生成的执行程序是多少位的是由谁来决定的?

(A)CPU (B)OS (C)编译器 (D)源程序

计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点,为了便于描述,又常用八、十六进制作为二进制的缩写。

一般计数都采用进位计数,其特点是:

(1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数。

(2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权。

不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。有四进制

2、十进制数与P进制数之间的转换

3、将P进制数转换为十进制数

把一个二进制转换成十进制采用方法:把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。

把二进制11110转换为十进制

把一个八进制转换成十进制采用方法:把这个八进制的最后一位乘上80,倒数第二位乘上81,……,一直到最高位乘上8n,然后将各项乘积相加的结果就它的十进制表达式。

把八进制36转换为十进制

(36)8=3*81+6*80=24+6=(30)10 把一个十六进制转换成十进制采用方法:把这个十六进制的最后一位乘上160,倒数第二位乘上161,……,一直到最高位乘上16n,然后将各项乘积相加的结果就它的十进制表达式。

把十六制1E转换为十进制

3、二进制转换成八进制数

(1)二进制数转换成八进制数:对于整数,从低位到高位将二进制数的每三位分为一组,若不够三位时,在高位左面添0,补足三位,然后将每三位二进制数用一位八进制数替换,小数部分从小数点开始,自左向右每三位一组进行转换即可完成。例如:

4、二进制与十六进制之间的转换

(1)二进制数转换成十六进制数:由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。

(2)十六进制转换成二进制数

如将十六进制数转换成二进制数,只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。例如:将(163.5B)16转换成二进制数,则(1 6 3.5 B)16 | | | | |(11.(163.5B)16=(

、十进制与二进制之间的转换

(1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分

方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制

得出结果 将十进制的168转换为二进制,()2 分析:第一步,将168除以2,商84,余数为0。第二步,将商84除以2,商42余数为0。第三步,将商42除以2,商21余数为0。第四步,将商21除以2,商10余数为1。第五步,将商10除以2,商5余数为0。第六步,将商5除以2,商2余数为1。第七步,将商2除以2,商1余数为0。第八步,将商1除以2,商0余数为1。

第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即

方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分

为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将0.125换算为二进制

得出结果:将0.125换算为二进制(0.001)2 分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。

例2,将0.45转换为二进制(保留到小数点第四位)

大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计。那么,我们可以得出结果将0.45转换为二进制约等于0.0111 上面介绍的方法是十进制转换为为二进制的方法,需要大家注意的是: 1)十进制转换为二进制,需要分成整数和小数两个部分分别转换

2)当转换整数时,用的除2取余法,而转换小数时候,用的是乘2取整法 3)注意他们的读数方向

因此,我们从上面的方法,我们可以得出十进制数168.125转换为二进制为,或者十进制数转换为二进制数约等于1。

(3)二进制转换为十进制 不分整数和小数部分

方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数。例 将二进制数101.101转换为十进制数。

得出结果:(101.101)2=(5.625)10 大家在做二进制转换成十进制需要注意的是 1)要知道二进制每位的权值 2)要能求出每位的值二、二进制与八进制之间的转换

首先,我们需要了解一个数学关系,即23=8,24=16,而八进制和十六进制是用这 关系衍生而来的,即用三位二进制表示一位八进制,用四位二进制表示一位十六进制数。

接着,记住4个数字8、4、2、1(23=8、22=4、21=2、20=1)。现在我们来练习二进制与八进制之间的转换。

(1)二进制转换为八进制

方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。例 ①将二进制数转换为八进制

得到结果:将转换为八进制为56.5

② 将二进制数1101.1转换为八进制

得到结果:将1101.1转换为八进制为15.4

(2)将八进制转换为二进制

方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。例:

① 将八进制数67.54转换为二进制

因此,将八进制数67.54转换为二进制数为100,即1 大家从上面这道题可以看出,计算八进制转换为二进制

首先,将八进制按照从左到右,每位展开为三位,小数点位置不变

然后,按每位展开为22,21,20(即4、2、1)三位去做凑数,即a×22+ b×21 +c×20=该位上的数(a=1或者a=0,b=1或者b=0,c=1或者c=0),将abc排列就是该位的二进制数 接着,将每位上转换成二进制数按顺序排列 最后,就得到了八进制转换成二进制的数字。

以上的方法就是二进制与八进制的互换,大家在做题的时候需要注意的是 1)他们之间的互换是以一位与三位转换,这个有别于二进制与十进制转换

2)大家在做添0和去0的时候要注意,是在小数点最左边或者小数点的最右边(即整数的最高位和小数的最低位)才能添0或者去0,否则将产生错误三、二进制与十六进制的转换

方法:与二进制与八进制转换相似,只不过是一位(十六)与四位(二进制)的转换,下面具体讲解(1)二进制转换为十六进制

方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。①例:将二进制1转换为十六进制

得到结果:将二进制1转换为十六进制为E9.B

② 例:将转换为十六进制

因此得到结果:将二进制转换为十六进制为2B.A

(2)将十六进制转换为二进制

方法:取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。

①将十六进制6E.2转换为二进制数

因此得到结果:将十六进制6E.2转换为二进制为0即 四、八进制与十六进制的转换

方法:一般不能互相直接转换,一般是将八进制(或十六进制)转换为二进制,然后再将二进制转换为十六进制(或八进制),小数点位置不变。那么相应的转换请参照上面二进制与八进制的转换和二进制与十六进制的转五、八进制与十进制的转换(1)八进制转换为十进制

方法:按权相加法,即将八进制每位上的数乘以位权,然后相加之和即是十进制数。例:①将八进制数67.35转换为十进制

(2)十进制转换为八进制 十进制转换成八进制有两种方法:

1)间接法:先将十进制转换成二进制,然后将二进制又转换成八进制

2)直接法:前面我们讲过,八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下: ①整数部分

方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。②小数部分

方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以8,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入。

例:将十进制数796.703125转换为八进制数

解:先将这个数字分为整数部分796和小数部分0.703125 整数部分

因此,得到结果十进制796.703125转换八进制为1434.55 上面的方法大家可以验证一下,你可以先将十进制转换,然后在转换为八进制,这样看得到的结果是否一样 六、十六进制与十进制的转换

十六进制与八进制有很多相似之处,大家可以参照上面八进制与十进制的转换自己试试这两个进制之间的转换。

通过上面对各种进制之间的转换,我们可以将前面的转换图重新完善一下:

知识目标:知道二进制与十进制之间的转换方法 操作目标:能在二进制与十进制之间进行进制转换 教学重点:二进制与十进制之间的转换 教学难点:二进制与十进制之间的转换 教学过程:

上一节课已经学习了什么是二进制以及二进制的运算。我们知道二进制只有“0”和“1”两个数码,运算规则为“逢二进一”。

下面我们复习一下二进制的运算:000111

二、新课: 二进制数转换成十进制数

那么应该相当于十进制中的什么数呢?

如果我们这样每次加1,那么二进制数与十进制之间的转换肯定会非常烦琐。那么我们有什么办法可以使十进制数非常方便地转换成二进制数呢?

我们都知道:十进制数是逢十进一,那么数字3175就可以表示成为:

3175最右边一位是个位,然后每往左边一位就要乘以10。

同样,二进制数是“逢二进一”,那么对照上面的表,我们可以知道:

中最右边的是个位上的1,表示十进制数中的1,而往左边一位1就代表十进制中的数字2,再往左边一位的1就代表十进制中的数字4。

验算一下上面的运算。11011→1×16+1×8+1×2+1×1=27;101→5;27×5=135。由此可以知,十进制与二进制在位权上的对照: 十进制与二进制的对照

练 习:把下列二进制数转换成进十制数: 1、、、 三、十进制转换成二进制

我们前面已经知道,二进制转换成十进制数,每向左边移一个数位,就要乘以2,那么我们倒过来转换我们就可以通过除以2来进行转换。例3:把十进制数13 转换成二进制数:

所以(13)10→(1101)2 例4:将十进制纯小数 0.562 转换成保留五位小数的二进制小数。可用“乘 2 取整法”求取相应二进制小数: 取整

任何十进制数都可以将其整数部分和纯小数部分分开,分别用“除 2 取余法”和“乘 2 取整法”化成二进制数形式,然后将二进制形式的整数和纯小数合并即成十进制数所对应的二进制数。-1-2

20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制。一、二进制数据的表示法

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。进位规则是“逢二进一”。二进制数据也是采用位置计数法,其位权是以2为底的幂。例如二进制数据110.11,其权的大小顺序为2、2、2、2、2。

【例1102】将二进制数据111.01写成加权系数的形式。

解:(111.01)2=(1×2)+(1×2)+(1×2)+(0×2)+(1×2)二、二进制数据的算术运算的基本规律和十进制数的运算十分相似。最常用的是加法运算和乘法运算。

(这些计算就跟十进制的加或者乘法相同,只是进位的数不一样而已,十进制的是逢十进位)

三、计算机内部采用二进制的原因

(1)技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。

(2)简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。

(3)适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。

(4)易于进行转换,二进制与十进制数易于互相转换。

(5)用二进制表示数据具有抗干扰能力强,可靠性高等优点。因为每位数据只有高低两个状态,当受到一定程度的干扰时,仍能可靠地分辨出它是高还是低。四、二进制概述以及其发展

1.二进制与十进制间的相互转换(整数):

方法:“按权展开求和”

=(8+0+2+1+)10

规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增。

任何一个十进制数除以2的结果,如果能够被整除,那么余数为0,否则为1。这一结论就是十进制整数转换为二进制的算法:将被转换的十进制数用2连续整除,直至最后的余数为0,然后将每次所得到的余数按相除过程反向排列,结果就是对应的二进制数。即: 十进制整数转二进制数:“除以2取余,直到商为0,余数逆序排列”

十进制与二进制之间互换

(1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分

方法:除以2取余数法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例:

将十进制的168转换为二进制

得出结果 将十进制的168转换为二进制,( 分析:第一步,将168除以2,商84,余数为0。第二步,将商84除以2,商42余数为0。第三步,将商42除以2,商21余数为0。第四步,将商21除以2,商10余数为1。第五步,将商10除以2,商5余数为0。第六步,将商5除以2,商2余数为1。第七步,将商2除以2,商1余数为0。第八步,将商1除以2,商0余数为1。

第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即 例

2、正整数的十进制转换二进制:

要点:除二取余,倒序排列

解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果

例如把52换算成二进制数,计算结果如图:

52除以2得到的余数依次为:0、0、1、0、1、1,倒序排列,所以52对应的二进制数就是110100。

由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位....。

于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个0。本文都以8位为例。那么:(52)10=(

二、负整数转换为二进制 要点:取反加一

解释:将该负整数对应的正整数先转换成二进制,然后对其“取补”,再对取补后的结果加1即可 例如要把-52换算成二进制: 1.先取得52的二进制:.对所得到的二进制数取反:.将取反后的数值加一即可: 即:(-52)10=(

三、小数转换为二进制 要点:乘二取整,正序排列

解释:对被转换的小数乘以2,取其整数部分(0或1)作为二进制小数部分,取其小数部分,再乘以2,又取其整数部分作为二进制小数部分,然后取小数部分,再乘以2,直到小数部分为0或者已经去到了足够位数。每次取的整数部分,按先后次序排列,就构成了二进制小数的序列 例如把0.2转换为二进制,转换过程如图:

0.2乘以2,取整后小数部分再乘以2,运算4次后得到的整数部分依次为0、0、1、1,结果又变成了0.2,若果0.2再乘以2后会循环刚开始的4次运算,所以0.2转换二进制后将是0011的循环,即:(0.2)10=(0.11.....)2

循环的书写方法为在循环序列的第一位和最后一位分别下加一个点以示标注

(2)小数部分 得出结果:(101.101)2=(5.625)10 方法:乘2取整法,即将小数部分乘以2,然后取整数部大家在做二进制转换成十进制需要注意的是 分,剩下的小数部分继续乘以2,然后取整数部分,剩下1)要知道二进制每位的权值 的小数部分又乘以2,一直取到小数部分

为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将0.125换算为二进制

得出结果:将0.125换算为二进制(0.001)2 分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计。那么,我们可以得出结果将0.45转换为二进制约等于0.0111 上面介绍的方法是十进制转换为为二进制的方法,需要大家注意的是:

1)十进制转换为二进制,需要分成整数和小数两个部分分别转换

2)当转换整数时,用的除2取余法,而转换小数时候,用的是乘2取整法 3)注意他们的读数方向

因此,我们从上面的方法,我们可以得出十进制数168.125转换为二进制为,或者十进制数转换为二进制数约等于1。(3)二进制转换为十进制 不分整数和小数部分 方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数。例

将二进制数101.101转换为十进制数。

我要回帖

更多关于 十进制数91相当于二进制数多少 的文章

 

随机推荐