ascii碼與bcd碼的轉(zhuǎn)換表 ascii碼到十進(jìn)制(BCD)的轉(zhuǎn)換?
ascii碼到十進(jìn)制(BCD)的轉(zhuǎn)換?代碼段資產(chǎn)CS:Code start:push CS pop DS mov DX,offset tips mov ah,9 int 21h mov Si,3500
ascii碼到十進(jìn)制(BCD)的轉(zhuǎn)換?
代碼段資產(chǎn)CS:Code start:push CS pop DS mov DX,offset tips mov ah,9 int 21h mov Si,3500h十進(jìn)制ASCII從3500h存儲(chǔ)在mov Di,350ahbcd從350ah存儲(chǔ)在mov CX,10個(gè)字符只夠輸入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,“$”代碼結(jié)束-開始
BCD代碼最重要的特點(diǎn)是用四個(gè)二進(jìn)制數(shù)表示0到9之間的十進(jìn)制數(shù)。所以,一般來說,BCD碼也是一個(gè)二進(jìn)制數(shù),BCD碼只是解釋二進(jìn)制數(shù)的另一種方式。
二進(jìn)制是很多1和0的組合,它總是以每?jī)蓚€(gè)進(jìn)位組合成一個(gè)的形式出現(xiàn)。
或例如:
二進(jìn)制1111,即2#1111,等于10的15。
但是BCD#2#1111是非法數(shù)據(jù),因?yàn)锽CD代碼只能表示十進(jìn)制中0-9之間的數(shù)字,而這一系列的2#1111仍然等于10#15。因?yàn)锽CD碼的定義是用四個(gè)二進(jìn)制數(shù)來表示0-9之間的十進(jìn)制數(shù)。如果是BCD#15,則可以轉(zhuǎn)換為2#0001 0101,因此十進(jìn)制值為21。
從這張圖片中,我們可以看到BCD代碼只能表示十進(jìn)制數(shù)字中的0-9。當(dāng)表示0-9的10個(gè)數(shù)時(shí),二進(jìn)制數(shù)和BCD碼的二進(jìn)制數(shù)據(jù)表示是相同的。
當(dāng)它超過0-9的10位十進(jìn)制數(shù)時(shí),二進(jìn)制碼和BCD碼被轉(zhuǎn)換成10,這是不一樣的
!二進(jìn)制代碼仍然可以以二進(jìn)制轉(zhuǎn)換為一的形式表示更多的十進(jìn)制數(shù)。如果用BCD碼來表示更多的十進(jìn)制值,如BCD#10,那么如果將其展開為二進(jìn)制,BCD#10=2#00010000,則轉(zhuǎn)換為十進(jìn)制的值是32,因?yàn)锽CD碼將四個(gè)二進(jìn)制數(shù)作為一個(gè)組,并將其理解為十進(jìn)制數(shù)中的0-9。
有點(diǎn)混亂。最好在編程測(cè)試期間測(cè)試更多的數(shù)據(jù),這將幫助您了解更多。這就是全部。我希望它能幫助你。謝謝您!