(二进制转十六进制)从文本框TextB输入一串不带符号位的二进制整数,单击“转换”按钮,将二进制转换为十六进制并显示在文本框TextH中。程序界面如图所示:
转换方法:先从右往左将二进制数分割成 4 位一组,若最左边的一组不足4位,则用 0 将高位补足,然后将每 4 位二进制数转换为 1 位十六进制数。
(1)
观察程序代码,可知“转换”按钮的对象名为。(单选,填字母:A .TextB/ B .TextH/B .Command1/C .Convert/D .转换)
(2)
为实现上述功能,请在划线处填入合适的代码。
Private Sub
Convert_Click()
Dim a(1 To
100) As Integer, temp As Integer
Dim s As
String, res As String, n As Integer, r As Integer
res =
""
s=TextB.text
n = Len(s)
For i = 1 To n
a(i) =
Val(Mid(s, i, 1))
Next i
t = n \ 4
r = ①
temp = 0
For i = 1 To r
‘将最高的r位转换为十六进制
②
Next i
If temp > 9 Then
res = Chr(temp
+ 55)
ElseIf temp >
0 Then
res =
CStr(temp) ‘Cstr()函数用于将数值转换为字符串,同时删除前导空格
End If
For i = 1 To t ‘将t组4位二进制转换为十六进制
Temp=0
For j=1 to 4
temp = temp+a(j+r+4*(i-1))*2^(4-j)
Next j
If temp > 9
Then
res = res +
Chr(temp + 55)
Else
res = res +
CStr(temp)
End If
Next i
TextH.Text =
res
End Sub
第①处代码为
第②处代码为
(3)
若在文本框 TextB 中输入“101000111”,则单击“转换”按钮后的输出结果为:。
答案: 【1】D
【1】n mod 4或n-t*4【2】temp = temp+ a()*2^(r-i)或temp=temp*2+ a()
【1】147