2进制转10进制8421法
- 格式:doc
- 大小:11.59 KB
- 文档页数:4
二进制转化为十六进制8421法二进制转化为十六进制8421法,是把每4个二进制位换算成一个十六进制位。
具体步骤如下:1. 首先将二进制数补0至能够被4整除的位数,如果最高位不足4位,则补0至4位。
2. 按照从高位到低位的顺序,将二进制数按照4位一组进行分组。
3. 将每个四位的二进制数转化为对应的十六进制数,按照二进制数的权重分别是8、4、2、1。
- 如果四位二进制数为0000~1001,对应十六进制数为0~9; - 如果四位二进制数为1010~1111,对应十六进制数为A~F。
4. 将每个四位转化后的十六进制数按照从高位到低位的顺序排列,得到最终的十六进制数。
举例说明:假设要将二进制数110110101转化为十六进制8421法。
1. 首先补位到8位,得到01101101。
2. 将0110分为4位一组分别为0110和1101。
3. 分别将0110转化为6,1101转化为D。
4. 最终得到十六进制数6D。
所以,二进制数110110101转化为十六进制8421法为6D。
8421法是一种二进制与BCD码的转换方式,相当于每个二进制位分别表示十进制数字的8、4、2、1位权值。
要将二进制数转化为8421法,则需要将每一个四位的二进制数转化为对应的十六进制数。
例如,给定一个二进制数11010101,将其转化为8421法:1. 将二进制数按照从高位到低位的顺序分组,每四位一组:1101 0101。
2. 将每个四位二进制数转化为对应的十六进制数:1101转化为D,0101转化为5。
3. 组合得到转化后的十六进制数,即D5。
因此,二进制数11010101转化为十六进制数的8421法表示为D5。
运用“8421”巧记进制转换广东深圳市田东中学 张春卉 在从事计算机教学的过程中,我发现了这样一个问题,在讲解进制转换的时候,很多学生都觉得比较吃力,尤其是二进制与十六进制的转换(其对应关系记起来很烦琐)。
教材在这方面也没有一个非常易记的规律。
下面就进制转换的问题,谈一下我自己的教学方法。
1. 二进制与十进制的转换此种转换相对简单一些,其中二进制转为十进制只要按权展开。
例:二进制的(10111.101)按权展开为(1×24+0×23+1×22+1×21+1×20+1×2-1+0×2-2+1×2-3),计算结果为十进制的(23.625)。
十进制转换为二进制时,整数部分除2取余,结果反序书写,小数部分乘2取整,结果顺序书写。
例:2 87------1 0.875 2 43------1 * 2 2 21------1 1.75 ------1 210 ------0 0.75 25 ------1 * 2 2 2------01.5 ------1 1 0.5 * 21.0 ------1(87)10=(1010111)2(0.875)10=(0.111)2即:(87.875)10=(1010111.111)22.二进制与十六进制的转换 在讲转换之前,应让学生搞明白并记牢十六进制中的十六个数字,即:0、1、2、3、4、5、6、7、8、9、A 、B 、C 、D 、E 、F 。
其中,A 、B 、C 、D 、E 、F 分别对应着十进制中的10、11、12、13、14、15。
(1)二进制转换为十六进制:第一步,打点分组。
二进制中相邻的四位数字相当于十六进制中的一位数字,例:(1011)2=(B )16 。
在分组的时候,以小数点为界(无小数位只计整数部分),整数部分从右向左,每四位一组并打点,小数部分从左向右,每四位一组并打点,不足四位补“0”。
8421转换法-回复8421转换法,也被称为8421BCD码,是一种用来将十进制数字转换成二进制码的方法。
在这种转换法中,我们将每一个十进制数字转换成相应的BCD码。
BCD码是一种用4位二进制数表示一个十进制数的编码方式。
8421转换法的名字源自其权重分配,这种分配方式为8-4-2-1。
具体来说,每一个十进制数字都被转换成4位二进制数,其中最高位的权重为8,其次为4,然后是2,最低位的权重为1。
通过这种方式,我们可以方便地将十进制数字转换成二进制码。
在进行8421转换时,我们需要遵循以下几个步骤:Step 1:将十进制数字分解成各位数值。
Step 2:将每个各位数值分别转换成4位的BCD码。
为此,我们可以使用真值表或者逻辑运算方法进行转换。
Step 3:将每个各位数值的BCD码连接在一起,得到最终的BCD码。
让我们以一个具体的例子来说明上述步骤。
假设我们要将十进制数字123转换成BCD码。
Step 1:将数字123分解成各位数值1、2和3。
Step 2:将每个各位数值分别转换成4位的BCD码。
- 数字1转换成BCD码:0001- 数字2转换成BCD码:0010- 数字3转换成BCD码:0011Step 3:将每个各位数值的BCD码连接在一起,得到最终的BCD码:000100100011通过以上步骤,我们成功地将十进制数字123转换成了BCD码000100100011。
8421转换法的应用非常广泛。
在数字电路设计中,我们常常需要将十进制数字转换成二进制码。
这种转换法具有简单、直观、可行的特点。
通过8421转换法,我们可以将数字信号传输到不同的逻辑电路中,如七段数码管、计数器、显示设备等。
8421转换法也为数字化系统的实现提供了一种有效的方式,可以将模拟信号转换成数字信号,提高了信息处理的精度和准确性。
以电子计算机为例,计算机内部采用二进制系统进行运算和存储。
因此,我们需要将输入的十进制数字转换成二进制码,以便计算机进行处理。
将8421BCD码转换为⼗进制数(转)//*****************************************************************//bcd hex //此函数⽤于将8421BCD码转换为⼗进制数,从函数参数可以看出此BCD码是由两位⼗进制数组成的。
BCD码是⽤⼆进制数对⼗进制数的各个位数进⾏编码,⽐如⼗进制数58,那么转换为BCD码为0x58,356对应BCD码就是0x356。
注意这是编码不是数进制间的转换,他们之间不存在等价关系。
只是进⾏编号,为了⽅便对编号后的数据⽤⼗六进制数表⽰。
对应编码规则如下:⼗进制数---8421BCD码----编码后⽤等价的⼗六进制数表⽰0-----------0000----------0x01-----------0001----------0x12-----------0010----------0x23-----------0011----------0x34-----------0100----------0x45-----------0101----------0x56-----------0110----------0x67-----------0111----------0x78-----------1000----------0x89-----------1001----------0x9知道了编码规则,那么将2位8421bcd码编号的数,还原为⼗进制数也就⽅便了。
函数参数是⼀个字节那么决定了此8421BCD码是两位码即⾼四位是⼀个码值、低四位是⼀个码值,将⾼四位乘以10加上低四位码值就得到了⼗进制数。
byte bcd2_hex(byte val){byte i;i = val&0x0f; //按位与,i得到低四位数。
val >>= 4; //右移四位,将⾼四位移到低四位的位置,得到⾼四位码值。
8421bcd码转换十进制方法
BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。
这样,当将BCD码传送给运算器进行运算时,其结果需要修正。
修正的规则是:当两个BCD码相加,如果和等于或小于1001(即十进制数9),不需要修正;如果相加之和在1010到1111(即十六进制数0AH~0FH)之间,则需加6进行修正;如果相加时,本位产生了进位,也需加6进行修正。
这样做的原因是,机器按二进制相加,所以4位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是2个十进制数相加,应该按“逢十进一”的原则相加,16与10相差6,所以当和超过9或有进位时,都要加6进行修正。
第1页共1页。
二进制,八进制,十进制,十六进制之间的相互转换和相关概念二进制:计算机只认识0或1,也就是高电平和低电平.所以所有的数据格式最终会转化为2进制形式,计算机硬件才能识别。
二进制逢二进一,八进制逢八进一,十进制逢十进一,十六进制逢十六进一。
下边是各进制之间的转换公式.二进制转十进制0110 0100(2) 换算成十进制第0位 0 * 2^0 = 0第1位 0 * 2^1 = 0第2位 1 * 2^2 = 4第3位 0 * 2^3 = 0第4位 0 * 2^4 = 0第5位 1 * 2^5 = 32第6位 1 * 2^6 = 64第7位 0 * 2^7 = 0 +---------------------------100二进制转八进制可采用8421法1010011(2)首先每三位分割即: 001,010,011不足三位采用0补位.然后采用8421法: 001=1010=2011=3所以转换成8进制是123二进制转十六进制1101011010100(2)首先每四位分割即: 0001,1010,1101,0100不足四位采用0补位.然后采用8421法: 0001:11010:A1101:D0100:4所以转换成十六进制是1AD4十六进制当数字超过9后将采用A代替10,B代替11,C代替12,D代替13,E 代替14,F代替15;下边是十进制的各种转换:十进制转二进制6(10)10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
商余数6/2 3 03/2 1 11/2 0 1最后把余数从下向上排列写出110即是转换后的二进制.十进制转换八进制10进制数转换成八进制数,这是一个连续除8的过程:把要转换的数,除以8,得到商和余数,将商继续除以8,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
120(10)商余数120/8 15 015/8 1 71/8 0 1最后把余数从下向上排列写出170即是转换后的八进制.十进制转换十六进制10进制数转换成十六进制数,这是一个连续除16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。
1. 二进制1000专换成16进制用8421转换法,即自左向右,8*1+4*0+2*0+1*0=0x8,这是所有十六进制转二进制的通用转换方式,位对位对齐转换,分别乘以8421,然后相加。
如果二进制数不够位,应在整数位左边或小数位右边用0补足,凑足4的倍数。
当然整数部分和小数部分要分别转换。
如:将111100转换为16进制,用8421转换法,但只能对齐二进制的低四位,高二位无法对齐的情况下补0,变为00111100B,再用8421:0*8+0*4+1*2+1*1+1*8+4*1+0*2+0*1=0x3C。
注意:十六进制数的一位相当于二进制数的四位。
2. 十六进制转换二进制:用8421拼凑法,首先要清楚的是:四位二进制数表示十六进制的一位,根据以上例子,转换0x3C。
首先转换二进制的高四位,也就是十六进制3这个数,可以将8421四位数相加拼凑,如果能得出3,就将该位设置为1,其余为0。
这四个数字中,仅有2+1才能得到3,因此,转换为二进制就是0011。
低四位,十六进制数C(十进制数12),只有8+4=12,设置为1,其余为0,就得到1100,高低位结合起来,二进制数为00111100.结合你的例子,转换0x8,8421中仅有8与其相匹配,直接设该位为1,其余为0,得1000B。
在中学信息技术教材中,数制转换是一个非常重要的知识点,特别是二进制和十进制的转换(仅限于整数)在高中信息技术教材中有明确的要求。
教材中虽然有“按权相加”(二进制转换为十进制)和“除二取余法”(十进制转换为二进制)二种方法。
但这两种方法都太繁琐,再加上现在高中信息技术会考都采用上机考核,根本不允许带纸和笔,这给学生解答这类题型造成了不小的麻烦。
我根据多年的教学经验,总结出了一个简单快捷的方法,取名“8421”法,仅供同行参考。
根据二进制的原则“逢二进一”,我们把2的n次方列出分别是:20=1 21=2 22=4 23=8 24=16 25=32 26=64……“8421”法的原理说白了就是一种凑数法,按2的n次方的值列出,根据不同的情况进行“凑数”。
8421转换法-回复8421转换法是一种用于数字编码的方法,其中每个数字都可以用4位二进制数来表示。
这种编码方法常用于数字传输和数字显示设备,例如LED 数码管和计数器。
本文将一步一步回答关于这个主题的问题。
第一步:什么是8421转换法?8421转换法是一种将十进制数字转换为二进制数字的编码方法。
在这种编码方法中,每个十进制数字用4位二进制数来表示,其中最高位是8,次高位是4,次低位是2,最低位是1。
第二步:如何使用8421转换法进行编码?编码的过程可以通过将十进制数字依次除以2并记录余数,然后倒序排列得到所需的二进制编码。
以下是一个示例说明:例子:要将十进制数字9转换为二进制编码。
步骤1:将9除以2得到商4和余数1。
9 ÷2 = 4 余数1步骤2:将商4除以2得到商2和余数0。
4 ÷2 = 2 余数0步骤3:将商2除以2得到商1和余数0。
2 ÷2 = 1 余数0步骤4:将商1除以2得到商0和余数1。
1 ÷2 = 0 余数1编码结果:倒序排列余数得到二进制编码1001,这就是数字9的8421转换法编码。
第三步:如何将8421二进制编码转换回十进制数字?将8421二进制编码转换回十进制数字的方法是将每个二进制位乘以相应的权重,并将结果相加。
以下是一个示例说明:例子:要将二进制编码1001转换回十进制数字。
步骤1:将最高位的1乘以8。
1 * 8 = 8步骤2:将次高位的0乘以4。
0 * 4 = 0步骤3:将次低位的0乘以2。
0 * 2 = 0步骤4:将最低位的1乘以1。
1 * 1 = 1结果:将每个结果相加得到十进制数字9,这就是8421二进制编码1001对应的十进制数字。
第四步:8421转换法的应用领域。
8421转换法常被应用于数字传输和数字显示设备中。
在数字传输中,将数字转换为二进制编码可以更有效地进行数据传输和存储。
在数字显示设备中,如LED数码管和计数器,利用8421转换法可以将输入的十进制数字转换为相应的二进制编码,以便显示在设备上。
二进制与十进制的换算方法浏览次数:168726次悬赏分:0 |解决时间:2007-5-12 17:23 |提问者:白兔豆豆二进制与十进制的换算方法,既要二换十,也要十换二的,要简单点的方法十六进制的最好也说一下谢谢最佳答案6.1 为什么需要八进制和十六进制?编程中,我们常用的还是10进制……必竟C/C++是高级语言。
比如:int a = 100,b = 99;不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。
但,二进制数太长了。
比如int 类型占用4个字节,32位。
比如100,用int类型的二进制数表达将是:0000 0000 0000 0000 0110 0100面对这么长的数进行思考或操作,没有人会喜欢。
因此,C,C++ 没有提供在代码直接写二进制数的方法。
用16进制或8进制可以解决这个问题。
因为,进制越大,数的表达长度也就越短。
不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?2、8、16,分别是2的1次方,3次方,4次方。
这一点使得三种进制之间可以非常直接地互相转换。
8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。
在下面的关于进制转换的课程中,你可以发现这一点。
6.2 二、八、十六进制数转换到十进制数6.2.1 二进制数转换为十进制数二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……所以,设有一个二进制数:0110 0100,转换为10进制为:下面是竖式:0110 0100 换算成十进制第0位0 * 20 = 0第1位0 * 21 = 0第2位1 * 22 = 4第3位0 * 23 = 0第4位0 * 24 = 0第5位1 * 25 = 32第6位1 * 26 = 64第7位0 * 27 = 0 +---------------------------100用横式计算为:0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 1000乘以多少都是0,所以我们也可以直接跳过值为0的位:1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 1006.2.2 八进制数转换为十进制数八进制就是逢8进1。
BCD码(二─ 十进制码)在一些数字系统中,如电子计算机和数字式仪器中,往往采用二进制码表示十进制数。
通常,把用一组四位二进制码来表示一位十进制数的编码方法称作二─十进制码,亦称BCD 码(Binary Code Decimal)。
4位二进制码共有16种组合,可从中任取10种组合来表示0~9这10个数。
根据不同的选取方法,可以编制出很多种BCD码,如8421码,5421码,2421码,5211码和余3码。
表B1101列出了这几种BCD码,其中的8421 BCD码最为常用。
由于每一组4位二进制码只代表一位十进制数,因而n位十进制数就得用n组4位二进制码表示。
【例1110】把十进制数369.74编成8421 BCD码。
解: 3 6 9 7 4↓↓↓↓↓0011 0110 1001 0111 0100∴(369.74)10=(0011 0110 1001. 0111 0100)BCD表B1101 常用BCD编码表BCD码转化认识BCD编码BCD编码是一种数字压缩存储编码,大家都知道一个字节有8个位,而数字0到9最多只需要使用4个位,如果用一个字节来存储一个数字相对就会有一定的浪费,尤其是在传输过程中,由此人们就想出了压缩的办法,于是BCD编码就产生了。
BCD编码将一个字节的8个位拆分成高4位和低4位两个部分,也就是说一个字节能存储两个数字。
所以BCD的编码过程就是将数字压缩的过程,将两个字节的数字压缩成一个字节。
反之,解码就是把一个字节的数字拆分为两个数字单独存放(大部分的处理都是按字节处理的)。
示例:编码过程,将数字69进行BCD编码(注:BCD编码低位在前,后面将不再注释)。
1. 将6,9分别转换成二进制表示:6(00000110)9(00001001),大家可以看到,最大的数字9也只要4个位,在传输过程中白白浪费了4个位;2.将69合并为一个字节,分别取6,9二进制编码的低4位,按照低位在前的原则,将9的低四位放前面6的低四位放后面得出新的字节二进制编码是10010110;3.完成编码过程,69的BCD编码结果为10010110。
2进制转10进制8421法
二进制转十进制的8421法,是一种将二进制数转换为十进制数的方法。
8421法中的8、4、2、1表示权重,分别对应二进制数的最高位、次高位、次次高位和最低位。
通过将二进制数的每一位与其对应的权重相乘,然后将所有结果相加,就可以得到对应的十进制数。
例如,将二进制数1010转换为十进制数:
1 * 8 + 0 * 4 + 1 *
2 + 0 * 1 = 10
下面将详细介绍二进制转十进制的8421法步骤,并给出一些示例。
步骤1: 了解二进制和十进制的概念
在开始介绍8421法之前,我们需要了解二进制和十进制的概念。
二进制是一种由0和1组成的数制,表示方法基于2的幂次。
每一位表示一个权值,从右到左依次为1、2、4、8、16、32...。
例如,二进制数1010表示1 * 2^3(8)+ 0 * 2^2(4)+ 1 * 2^1(2)+ 0 * 2^0(1)= 8 + 0 + 2 + 0 = 10。
十进制是一种由0到9这10个数字组成的数制,表示方法基于10的幂次。
每一位表示一个权值,从右到左依次为1、10、100、1000...例如,十进制数10表示1 * 10^1(10)+ 0 * 10^0(1)= 10 + 0 = 10。
步骤2:将二进制数拆分为各位数和权值
将给定的二进制数按照权值的大小拆分为各位数,并标明对应的权重。
例如,将
二进制数1010拆分为:
1 * 2^3(8)+ 0 * 2^2(4)+ 1 * 2^1(2)+ 0 * 2^0(1)
步骤3:计算各位数与权重的乘积
将拆分得到的各位数与对应的权重相乘。
根据上面的示例,计算得到的乘积为: 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1
步骤4:将所有乘积相加得到十进制数
将步骤3中计算得到的乘积相加,即可得到对应的十进制数。
根据上面的示例,计算得到的十进制数为:
8 + 0 + 2 + 0 = 10
通过以上步骤,我们可以将二进制数转换为十进制数,并且对应的8421权值也就是二进制数中各个位对应的权值。
下面,我们通过一些示例来进一步理解8421法的转换过程。
示例1:
将二进制数1101转换为十进制数。
拆分各位数和权值: 1 * 2^3(8)+ 1 * 2^2(4)+ 0 * 2^1(2)+ 1 * 2^0(1)计算乘积: 1 * 8 + 1 * 4 + 0 * 2 + 1 * 1
得到十进制数: 8 + 4 + 0 + 1 = 13
示例2:
将二进制数101110转换为十进制数。
拆分各位数和权值: 1 * 2^5(32)+ 0 * 2^4(16)+ 1 * 2^3(8)+ 1 * 2^2(4)+ 1 * 2^1(2)+ 0 * 2^0(1)
计算乘积: 1 * 32 + 0 * 16 + 1 * 8 + 1 * 4 + 1 * 2 + 0 * 1
得到十进制数: 32 + 0 + 8 + 4 + 2 + 0 = 46
示例3:
将二进制数1110001转换为十进制数。
拆分各位数和权值: 1 * 2^6(64)+ 1 * 2^5(32)+ 1 * 2^4(16)+ 0 * 2^3(8)+ 0 * 2^2(4)+ 0 * 2^1(2)+ 1 * 2^0(1)
计算乘积: 1 * 64 + 1 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 0 * 2 + 1 * 1
得到十进制数: 64 + 32 + 16 + 0 + 0 + 0 + 1 = 113
通过以上示例,我们可以看到8421法的转换过程。
将二进制数拆分为各位数和权值,然后计算各位数与权重的乘积,最后将所有乘积相加即可得到十进制数。
对于较长的二进制数,可以按照拆分和计算乘积的步骤逐位进行。
总结:
通过8421法,我们可以将二进制数转换为十进制数。
这种转换方法基于二进制数中各个位对应的权值,通过拆分和乘法运算将二进制数转换为十进制数。
理解
8421法的步骤和示例,有助于我们掌握二进制转十进制的方法,并在实际问题中应用。