bcd转btc
A. 如何把一个BCD数转换成ASCII值
char bcd2asc(char bcdVal)
{
if(bcdVal >= 0 || bcdVal =< 9)
{
bcdVal += '0';
}
else
{
bcdVal = '0';
}
return bcdVal;
}
B. bcd码转换成二进制
;程序如下:
RESULT EQU 20h
ORG 0
START:
CALL BCD2BIN
SJMP$
BCD2BIN:
MOV A, RESULT
MOV B, #10
MUL AB
ADD A, RESULT+1
MOV B, #10
MUL AB
ADD A, RESULT+2
RET
;完,BIN数字在A中。
C. 二进制与BCD码之间的转换
一般来说,默认的BCD码是8421码,也就是说,使用4位二进制数来表示10位0-9的1位十进制数。从左到右的重量是8,4,2,1。
以十进制37为例,进行转换:
3=2+1=(8421码)0011,7=4+2+1=(8421码)0111。
所以37转换成8421码为0011 0111。
(3)bcd转btc扩展阅读:
BCD码使用四位来存储十进制数,这使得二进制和十进制之间的转换很快,这种编码技术最常用于会计系统的设计,因为会计系统通常需要精确地计算一长串数字。
与一般的浮点计数方法相比,BCD码不仅可以节省数值精度,而且可以节省浮点运算时间,此外,BCD编码也常用于其他需要高精度的计算。
BCD码的最高二进制数是符号位,负数的符号位是1,正数是0,16位BCD码的范围是-999-+999。
BCD代码没有单独的表示,而是借用了十六进制表示,因此很容易混淆,一般来说,有两种判断方法:
1、看看数据的来源和目的,BCD码通常用于输入和输出,例如,来自拨号开关的数据是BCD码,它被发送到电梯层的解码芯片。
2、请参阅手册,例如,数据类型“日期和时间”中的日期和时间值是BCD代码,计数器的预设值PV和当前计数值CV BCD是BCD代码。
D. 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码。
E. 8421BCD码怎样转换成十进制
8421BCD码是采用4位二进制码来表示十进制数值,高位到低位的权值分别为8,4,2,1,只要将每4位二进制码对应的权值相加即得到对应的十进制数。如二进制的10010111BCD码转换成十进制是:97。
BCD码的编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。采用BCD编码,相比其他编码方式,既可保存数值的精确度,又可免去使电脑作浮点运算时所耗费的时间。
(5)bcd转btc扩展阅读
BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码。
8421BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表十进制数的0~9,余下的六组代码不用。
F. bcd码转换为十进制
没有说是8421码就直接转就好了。就是十进制的134
BCD码是用4 位二进制数码来表示一位十进制数字。通常采用8421码(还有其他的比如2421码和余3码)。
这里就用8421码说明一下吧。
四位2进制。分别对应数字8、4、2、1四个数字。
例如:1010 那么对应的数字就是 8 0 2 1 加一起就是十一
例如:0101 那么对应的数字就是 0 4 0 1 加一起就是五
同样的道理
2421码就是对应 2、4、2、1四个数字
余3码用的是8421吗,但是用完之后 要减3.
G. BCD码转换成ASCII值
voidWhAsciiToBcd(unsignedchar*psDataIn,size_tuiDataInLen,unsignedchar*psDataOut)
{
unsignedcharucTemp=0;
for(size_ti=0;i<uiDataInLen;i+=2){
ucTemp=psDataIn[i];
if(ucTemp>'9'){
ucTemp=(unsignedchar)toupper((unsignedchar)ucTemp)-'A'+0x0A;
}else{
ucTemp&=0x0F;
}
psDataOut[i/2]=ucTemp<<4;
ucTemp=psDataIn[i+1];
if(ucTemp>'9'){
ucTemp=(unsignedchar)toupper((unsignedchar)ucTemp)-'A'+0x0A;
}else{
ucTemp&=0x0F;
}
psDataOut[i/2]|=ucTemp;
}
}
(7)bcd转btc扩展阅读
ASCII转BCD
voidWhBcdToAscii(unsignedchar*psDataIn,size_tuiDataInLen,unsignedchar*psDataOut)
{
unsignedcharsAscii[]="0123456789ABCDEF";
for(size_ti=0;i<uiDataInLen;i++){
psDataOut[2*i]=sAscii[(psDataIn[i]>>4)];
psDataOut[2*i+1]=sAscii[(psDataIn[i]&0x0F)];
}
}
H. BCD码和十进制码怎么转换
晕哦,bcd一个字节表示能表示从0~99任意一个数字.
mov
ah,al
shr
ah,1
shr
ah,1
shr
ah,1
shr
ah,1
and
al,0fh
这是把一个字节的bcd转换成2个字节的
十进制
,
希望采纳
I. 什么是BCD码转换
bcd码是十位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 1 0001 2 0010 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000