將一個十進(jìn)制正整數(shù)x轉(zhuǎn)換成十六進(jìn)制數(shù)的方法和轉(zhuǎn)換成二進(jìn)制類似,反復(fù)除16取余法,它的算法如下
第一步:x被除16取余數(shù)r1,r1是所求的十六進(jìn)制數(shù)的一個數(shù)(第一次就是個位數(shù));
第二步:r1轉(zhuǎn)換成十六進(jìn)制數(shù)的一個基數(shù)并轉(zhuǎn)換成字符,追加到十六進(jìn)制數(shù)S的左邊;
第三步:求出x被除16的商x1;
第四步:對x1重復(fù)(1)、(2)、(3)過程,直至商為0;
第五步:最后的S即為所求的十六進(jìn)制數(shù);
下列Visual Basic程序的功能是將一個十進(jìn)制正整數(shù)x轉(zhuǎn)換成十六進(jìn)制數(shù).界面如圖所示,在文本框Text1中輸入一個十進(jìn)制數(shù)制,單擊“十進(jìn)制轉(zhuǎn)十六進(jìn)制按鈕”(Command1)后,在文本框Text2中輸出轉(zhuǎn)換的結(jié)果. 相應(yīng)的Visual Basic程序如下:
Private Sub Command1_Click ( )
Dim s As String,r As Integer
dec=val(Text1.Text)’dec得到一個十進(jìn)制整數(shù),例如:255;
base=16’base表示16
s=““’s變量存放要轉(zhuǎn)換到的十六進(jìn)制整數(shù);
Do While dec<>0
r=
①
①
If r>=10Then’如果base>10進(jìn)制,r可能>10;
s=Chr(65+(r-10))+s’Chr (65)=“A“,16進(jìn)制數(shù)A對應(yīng)10;
Else’Chr (66)=“B“,16進(jìn)制數(shù)B對應(yīng)11;
s=Str(r)+s’余數(shù)r<10時,十進(jìn)制數(shù)和十六進(jìn)制基數(shù)相同;
End If’Chr (65+( r-10))或str(r)在s左邊,實現(xiàn)了反次序輸出;
dec=
②
②
Loop
Text2.Text=s
End Sub
(1)在①應(yīng)填入
C
C
A.base Mod dec B.dec/base C.dec Mod base D.dec\base
(2)在②應(yīng)填入
D
D
A.base Mod dec B.dec/base C.dec Mod base D.dec\base.