将一个十进制正整数x转换成十六进制数的方法和转换成二进制类似,反复除16取余法,它的算法如下:第一步:x被除16取余数r1,r1是所求的十六进制数的一个数(第一次就是个位数);
第二步:r1转换成十六进制数的一个基数并转换成字符,追加到十六进制数s的左边;
第三步:求出x被除16的商x1;
第四步:对x1重复第一、二、三步,直至商为0;
第五步:最后的s即为所求的十六进制数;
下列Visual Basic程序的功能是将一个十进制正整数x转换成十六进制数。界面如图所示,在文本框Text1中输入一个十进制数,单击“十进制转十六进制”按钮(Command1)后,在文本框Text2中输出转换的结果。
![](http://tikupic.21cnjy.com/2c/ab/2cab51ae3611ad05bb9e1e0e7b876045.jpg)
相应的Visual Basic程序如下:
Private Sub Command1_Click()
Dim s As String, r As Integer
dec=val(Text1.Text) ‘dec得到一个十进制整数,例如:255
base=16 ‘base表示16
s=“” ‘s变量存放要转换到的十六进制整数
Do While dec <> 0
r=(1)
If r >=10 Then ‘如果base>10,r可能>10
s=Chr(65+(r-10))+s ‘Chr(65)=“A”,16进制数A对应10;
Else
s=Str(r)+s ‘余数r<10时,十进制数和十六进制基数相同
End If ‘Chr(65+( r-10))或str(r)在s左边,实现了反次序输出
dec=(2)
Loop
Text2.Text=s
End Sub
在(1)处应填入{#blank#}1{#/blank#} , 在(2)处应填入{#blank#}2{#/blank#}。
A.base Mod dec B.dec/base
C.dec Mod base D.dec\base