ascii码到十进制(BCD)的转换

ascii码到十进制(BCD)的转换,第1张

其实ascII码是很容易得到的,书上一般都会有那个表格,对应的你可以读出你所需的孙困字符所对应的二进制代码,当你把8位二进制代码写出时,我们就可以转换为BCD码了,具体方法是:8,4,2,1。

比如我的二进制码为:01001101

则BCD码察唤为一位一位的转换:0000

0001

0000

0000

0001

0001

0000

0001

一般我们都是将十进制代码转成BCD码的:

0=0000

1=0001

2=0010

3=0011

4=0100

5=0101

6=0110

7=0111

8=1000

9=1001

至于你要程序:

给你个思路吧,你可以做个顺序结构,对比你输入的ascII码,当对到相同的0或1时,直接进行查表(tab

),表格很简单,因为只有01,所以就写两个就则没念好了,就是DW

0000,0001

,然后返回。要是还不明白可以继续提问。

bcd码通常是指8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,这十个数每个数都有自己的8421码

bcd码是四位二进制码,也就是将十进制的数字转化为二进制,但是和普通的迹铅转化有一点不同,每一个十进制的数字0-9都对应着一个四位的二进制码姿耐好,对应关系如下:十进制0对应二进制0000十进制1对应二进制0001.......91001接下来的10就有两个上述的码来表示10表示为00010000也就亩袭是bcd码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000

压缩bcd码与非压缩bcd码的区别——压缩bcd码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110b表示十进制数96d;非压缩bcd码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000b表示十进制数8.

百度百科http://baike.baidu.com/view/45179.htm?fr=ala0_1_1

bcd码代表数字0~9,ascii码中也有代表数字0~9的码元,可以查看ascii表,'0'=48,'1'=49,依次类推。

先把压缩bcd拆开变成非压缩bcd,然后加48就是ascii中的0~9了!

code segment assume 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只够输扮橡笑入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 'Press any key...',0dh,0ah,'$' code ends end start


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12557953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存