ascii码与bcd码的转换表 ascii码到十进制(BCD)的转换?
ascii码到十进制(BCD)的转换?代码段资产CS:Code start:push CS pop DS mov DX,offset tips mov ah,9 int 21h mov Si,3500
ascii码到十进制(BCD)的转换?
代码段资产CS:Code start:push CS pop DS mov DX,offset tips mov ah,9 int 21h mov Si,3500h十进制ASCII从3500h存储在mov Di,350ahbcd从350ah存储在mov CX,10个字符只够输入Q0:mov ah,1 int 21h CMP Al,“0”JB Q1 CMP Al,“9”JA Q1 mov[Si],Al sub Al,30h mov[Di],Al JMP Q2 Q1:mov Al,0ffh mov[Si],Al mov[di],Al Q2:Inc Si Inc di Q3:loop Q0 mov ah,0 int 16h mov ah,4CH int 21h tips DB “按任意键…”,0dh,0ah,“$”代码结束-开始
BCD代码最重要的特点是用四个二进制数表示0到9之间的十进制数。所以,一般来说,BCD码也是一个二进制数,BCD码只是解释二进制数的另一种方式。
二进制是很多1和0的组合,它总是以每两个进位组合成一个的形式出现。
或例如:
二进制1111,即2#1111,等于10的15。
但是BCD#2#1111是非法数据,因为BCD代码只能表示十进制中0-9之间的数字,而这一系列的2#1111仍然等于10#15。因为BCD码的定义是用四个二进制数来表示0-9之间的十进制数。如果是BCD#15,则可以转换为2#0001 0101,因此十进制值为21。
从这张图片中,我们可以看到BCD代码只能表示十进制数字中的0-9。当表示0-9的10个数时,二进制数和BCD码的二进制数据表示是相同的。
当它超过0-9的10位十进制数时,二进制码和BCD码被转换成10,这是不一样的
!二进制代码仍然可以以二进制转换为一的形式表示更多的十进制数。如果用BCD码来表示更多的十进制值,如BCD#10,那么如果将其展开为二进制,BCD#10=2#00010000,则转换为十进制的值是32,因为BCD码将四个二进制数作为一个组,并将其理解为十进制数中的0-9。
有点混乱。最好在编程测试期间测试更多的数据,这将帮助您了解更多。这就是全部。我希望它能帮助你。谢谢您!