在如何編寫把十進(jìn)制數(shù)轉(zhuǎn)化成ascii的程序之前,應(yīng)先知道十進(jìn)制數(shù)與之對(duì)應(yīng)asiic碼的數(shù)學(xué)關(guān)系及將它們存放存儲(chǔ)器的數(shù)制表示形式:
1、每一位十進(jìn)制數(shù)其值為0~9,其二進(jìn)制值為:0000~1001,放在字節(jié)存儲(chǔ)器將占用4個(gè)二進(jìn)制數(shù)的位。一個(gè)字節(jié)內(nèi)含8個(gè)二進(jìn)制數(shù)的位,故一個(gè)字節(jié)可表示2位十進(jìn)制數(shù)。這種用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)的數(shù)制叫bcd碼。
2、每一位十進(jìn)制數(shù)“x”轉(zhuǎn)換為asiic碼的原則為:30+x 如 x=4,其對(duì)應(yīng)asiic碼=34,將其放入一字節(jié)存儲(chǔ)器里用二進(jìn)制數(shù)表示:0011_0100,用16進(jìn)制數(shù)表示:16#34
3、如被轉(zhuǎn)換的十進(jìn)制數(shù)最大為4位數(shù),用bcd碼表示可占一個(gè)字存儲(chǔ)器空間,設(shè)為字存儲(chǔ)器為mw10,mw10含2個(gè)字節(jié),高字節(jié)為mb10,低字節(jié)為mb11。mb10的高4位為十進(jìn)制數(shù)的千位數(shù)值,mb10的低4位為十進(jìn)制數(shù)的百位數(shù)值。mb11的高4位為十進(jìn)制數(shù)的十位數(shù)值,mb11的低4位為十進(jìn)制數(shù)的個(gè)位數(shù)值。如將此4位十進(jìn)制數(shù)轉(zhuǎn)換為asiic碼,需占用一個(gè)雙字存儲(chǔ)器空間,如vd10,它含有4個(gè)字節(jié),每個(gè)字節(jié)代表一位asiic碼,其每個(gè)字節(jié)的高4位數(shù)值皆=0011(3),低4位數(shù)為十進(jìn)制數(shù)對(duì)應(yīng)的數(shù)值,如十進(jìn)制數(shù)1234,放入字存儲(chǔ)器mw10里。其內(nèi)容=0001_0010_0011_0100,用16進(jìn)制數(shù)表示為:16#1234,轉(zhuǎn)換為asiic碼值放入vd10里,其內(nèi)容=0011_0001_0011_0010_0011_0011_0011_0100,用16進(jìn)制數(shù)表示:16# 31 32 33 34。
了解上述3點(diǎn),就可以很容易編出把十進(jìn)制數(shù)轉(zhuǎn)化成ascii的程序:
設(shè)mw10為4位十進(jìn)制數(shù)存儲(chǔ)區(qū)(存數(shù)形式為bcd碼),vd10為轉(zhuǎn)換為asiic碼d的存數(shù)區(qū)。編程可以這樣處理:
1、將16#30303030送入vd10.
2、將mb10右移4位送入mb8,再將mb8或入vb10。
3、將mb10與16#0f相與,送入mb8,再將mb8或入vb11。
4、將mb11右移4位送入mb8,再將mb8或入vb12。
5、將mb11與16#0f相與,送入mb8,再將mb8或入vb13。
按這樣步驟編程,其vd10的內(nèi)容即為將mw10內(nèi)的4位十進(jìn)制數(shù)轉(zhuǎn)換為asiic碼值。