00011000 作为2位BCD码时, 其值为18。 怎么算的啊

作者&投稿:宫眨 (若有异议请与网页底部的电邮联系)
BCD码的加减法~

BCD码减法也可用补码运算代替,原理和之前写过的八位二进制数补码运算原理相同。
八位二进制数的范围是00H~FFH,八位BCD码的范围是00H~99H,也可以像补码运算一样画一个时钟,起点是00H,00H逆时针的第一个数是99H。只要有时钟,就可以用补码运算规则,那么BCD码的补码如何求。
举例说明,红色弧线便是08H的补码,计算方法是99H+01H-08H = 9AH - 08H,所以用9AH减去该BCD码,便可得其补码。
另外,做BCD码加减法时,还要进行调整,因为十六进制加法是逢16进1,BCD码是逢10进1,相差6。

扩展资料:
在计算机内部实现BCD码之间的算术运算要复杂一些,即在某些情况下,对加法运算的结果进行修正。修正规则如下:
(1) 若两个8421码数相加之和等于或小于1001,不需修正。
(2) 若相加和在10-15之间,一方面应向高位产生进位,本身还要进行加6修正,进位是在加6修正时产生的。
(3) 若相加之和在16-18之间,向高位进位会在相加过程中自己产生,对本位还要进行加6修正。
参考资料:百度百科——BCD码

二进制编码的十进制数,简称BCD码(Binarycoded Decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值。 点击此处将给出十进制数和8421BCD编码的对应关系表。
1、BCD码与十进制数的转换
BCD码与十进制数的转换.关系直观,相互转换也很简单,将十进制数75.4转换为BCD码如:
75.4=(0111 (0101.0100)BCD 若将BCD码1000 0101.0101转换为十进制数如: (1000 0101.0101)BCD=85.5
注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的。
例如:00011000,当把它视为二进制数时,其值为24;但作为2位BCD码时, 其值为18。
又例如00011100,如将其视为二进制数,其值为28,但不能当成BCD码,因为在8421BCD码中,它是个非法编码 .
2、BCD码的格式
计算机中的BCD码,经常使用的有两种格式,即分离BCD码,组合BCD码。
所谓分离BCD码,即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为:
_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示无关值。
组合BCD码,是将两位十进制数,存放在一个字节中,例82的存放格式是1000 0010
3、BCD码的加减运算
由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于
计算机总是把数当作二进制数来运算,所以结果可能会出错。例:用BCD码求38+49。
解决的办法是对二进制加法运算的结果采用"加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。修正规则:
(1)如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。
(2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正.
(3)低位修正结果使高位大于9时,高位进行加6修正。
下面通过例题验证上述规则的正确性。
用BCD码求35+21 BCD码求25+37 用BCD码求38+49 用BCD码求42+95
用BCD码求91+83 用BCD码求94+7 用BCD码求76+45
两个组合BCD码进行减法运算时,当低位向高位有借位时,由于"借一作十六"与"借一作十"的差别,将比正确的结果多6,所以有借位时,可采用"减6修正法"来修正.两个BCD码进行加减时,先按二进制加减指令进行运算,再对结果用BCD调整指令进行调整,就可得到正确的十进制运算结果。 实际上,计算机中既有组合BCD数的调整指令,也有分离BCD数的调整指令。另外,BCD码的加减运算,也可以在运算前由程序先变换成二进制数,然后由计算机对二进制数运算处理,运算以后再将二进制数结果由程序转换为BCD码
是否可以解决您的问题?

0001对应十进制是1,1000对应十进制的值是8,所以合起来是18.

附:计算机内毫无例外地都使用二进制数进行运算,但通常采用8进制和十六进制的形式读写。对于计算机技术专业人员,要理解这些数的含义是没问题,但对非专业人员却不那么容易的。由于日常生活中,人们最熟悉的数制是十进制,因此专门规定了一种二进制的十进制码,称为BCD码,它是一种以二进制表示的十进制数码。
一、8421BCD码
二进制编码的十进制数,简称BCD码(Binarycoded Decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值。 点击此处将给出十进制数和8421BCD编码的对应关系表。
1、BCD码与十进制数的转换
BCD码与十进制数的转换.关系直观,相互转换也很简单,将十进制数75.4转换为BCD码如:
75.4=(0111 (0101.0100)BCD 若将BCD码1000 0101.0101转换为十进制数如: (1000 0101.0101)BCD=85.5
注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的。
例如:00011000,当把它视为二进制数时,其值为24;但作为2位BCD码时, 其值为18。
又例如00011100,如将其视为二进制数,其值为28,但不能当成BCD码,因为在8421BCD码中,它是个非法编码 .
2、BCD码的格式
计算机中的BCD码,经常使用的有两种格式,即分离BCD码,组合BCD码。
所谓分离BCD码,即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为:
_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示无关值。
组合BCD码,是将两位十进制数,存放在一个字节中,例82的存放格式是1000 0010
3、BCD码的加减运算
由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于
计算机总是把数当作二进制数来运算,所以结果可能会出错。例:用BCD码求38+49。
解决的办法是对二进制加法运算的结果采用"加6修正,这种修正称为BCD调整。即将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。修正规则:
(1)如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。
(2)如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正.
(3)低位修正结果使高位大于9时,高位进行加6修正。
下面通过例题验证上述规则的正确性。
用BCD码求35+21 BCD码求25+37 用BCD码求38+49 用BCD码求42+95
用BCD码求91+83 用BCD码求94+7 用BCD码求76+45
两个组合BCD码进行减法运算时,当低位向高位有借位时,由于"借一作十六"与"借一作十"的差别,将比正确的结果多6,所以有借位时,可采用"减6修正法"来修正.两个BCD码进行加减时,先按二进制加减指令进行运算,再对结果用BCD调整指令进行调整,就可得到正确的十进制运算结果。 实际上,计算机中既有组合BCD数的调整指令,也有分离BCD数的调整指令。另外,BCD码的加减运算,也可以在运算前由程序先变换成二进制数,然后由计算机对二进制数运算处理,运算以后再将二进制数结果由程序转换为BCD码。
二、ASCII码
ASCII码是美国国家信息交换标准字符码(American Standard Code for Information Interchange )的字头缩码。早期的ASCII码采用7位二进制代码对字符进行编码。它包括32个通用控制字符,10个阿拉伯数字,52个英文大,小字母,34个专用符号共128个。7位ASCII代码在最高位添加一个“0”组成8位代码,正好占一个字节,在存储和传输信息中,最高位常作为奇偶校验位使用。扩展ASCII码,即第八位不再视为校验位而是当作编码位使用。扩展 ASCII码有256个。

0001值为1
1000值为8
所以转换成16进制值就是18H
对应16进制有0000-0,0001-1,0010-2,0011-3,0100-4,0101-5,0110-6,0111-7,1000-8,1001-9,1010-A,1011-B,1100-C,1101-D,1110-E,1111-F


莱西市19423873588: 二进制的十进制编码是( )码? -
魏轰立思: 二进制的十进制码,称为BCD码,它是一种以二进制表示的十进制数码. 一、8421BCD码 二进制编码的十进制数,简称BCD码(Binarycoded Decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符.4位二进...

莱西市19423873588: 十六位进制转为二进制 -
魏轰立思: 用8421代码 ~~把数化出来~~ 比如说:18(16) 先把1化出来,用8421码化,0001,然后把8化出来,用8421码表示是1000,所以18(16)=00011000(2) 再比如说427(16), 先把4,用8421码表示是0100,再化2,用8421码表示是0010 再化7,用...

莱西市19423873588: 有关十进制整数(BCD)转换成二进制的电路设计! -
魏轰立思: 有现成的芯片. 芯片(1)74LS154 :4-16线译码器,四位2进制数(4位BCD码编制)转换为16位2进制数 芯片(2)74LS138 :3-8线译码器,3BCD---转8位2进制数 你可以去www.21ic.com上搜索这两个芯片的原理图.原理图太大了上传不了.

莱西市19423873588: 一KB等于多少字节? -
魏轰立思: 1千字节(kb)=1024字节(b).MB是兆字节,GB是吉字节. 千字节(Kilobyte),常写作kB, KB或K,是一种资讯计量单位,现今通常在标示内存等具有一般容量的储存媒介之储存容量时使用. 字节(Byte)是计算机信息技术用于计量存储...

莱西市19423873588: 8位二进制数为一字节,怎么理解'8位二进制'呀字节是不是用B表示? -
魏轰立思: “位”是由一个0或一个1组成的(即是2进制)8位2进制就是由8个数组成的,这8个数可以是0000 0000 到1111 1111之间的任意数!

莱西市19423873588: 网络202.112.24.0/25被划分成4个子网,则这4个子网分别是多少?怎么计算? -
魏轰立思: 正常网络划分使用下面公式:2的n次方-2大于等于4 n=3 (n是所借网络位) 减2是去掉全0子网和全1子网(全0子网是基本网络地址,全1子网是“全部子网”广播地址) 然而,对于变长子网(vlsm),我们可以使用全0子网和全1子网(新规则而...

莱西市19423873588: 请问python里输入两个数,比如是00111000和10000010, 如何把他们当作二进制数进行按位或操作?
魏轰立思: a = int('00111000', 2) b = int('10000010', 2) print bin(a | b)

莱西市19423873588: 二进制的100.001为什么表示为22+2–3 -
魏轰立思: 100.001b=1*2^2+0*2^1+0*2^0+0*2^(-1)+0*2^(-2)+1*2^(-3)=2^2+2^(-3),因为二进制数中的数码只可能是'0'或者是'1',而'0'无论在什么位置,都表示数值0,不管该位置的位权有多大;'1'所表示的数值大小则是它所在位置的位权.因此,只需要将二进制数中所有'1'的位权相加就可以转换成十进制数.

莱西市19423873588: IP地址的格式与分类? -
魏轰立思: IP地址的格式与分类 看上图的IP地址,我们可以知道,IP地址由四个用小数点隔开的十进制整数(0--255)组成的.实际上一个IP地址是一个32位的二进制数.每8个位可以用一个十进制整数数字来表示,以简化人们的记忆. 例如:电脑室中的...

莱西市19423873588: 24的2在什么位上,表示什么个什么,4在什么位上,表示什么个什么 -
魏轰立思: 24的2在十位上,表示2个十, 4在个位上,表示4个1

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网