VB编程:编写程序,把十进制数转换为2-16任意进制的字符串。

2016-07-12 10:23:15  分类: VB程序设计教程第4版答案刘炳文  参与:

VB编程:编写程序,把十进制数转换为2-16任意进制的字符串。
    解:Visual Basic 提供了Hex$ 和 Oct$函数,可以把一个十进制数分别转换为十六进制数和八进制数,但没有提供其它进制转换的函数。为了把一个十进制数d转换为r进制的数,通常采取的方法是:除r取余,逆序输出。即把d连续除以r取余数,直到商等于0为止,将所求得的余数放在一个数组中,按相反的顺序得到的结果,最后得到的余数是转换后的最高位。

    在窗体上画三个标签和三个文本框,如图所示。


编写程序如下:
Private Sub Form_Click()
    Dim Dec As Integer, Base As Integer
    Dim Decr(30) As Integer
    Dim strDecR As String * 30
    Dim strBase As String * 16
    Dim b As Integer, n As Integer
    strBase = "0123456789ABCDE"
    Dec = Val(Text1.Text)
    Base = Val(Text2.Text)
    If Base < 2 Or Base > 16 Then
        res = MsgBox("进制超出范围", vbRetryCancel)
        If res = vbRetry Then
            Text1.Text = ""
            Text1.SetFocus
        Else
            End
        End If
    End If

n = 0

Do While Dec <> 0
Decr(n) = Dec Mod Base
Dec = Dec \ Base
n = n + 1
Loop
strDecR = ""
n = n - 1
Do While n >= 0
b = Decr(n)
strDecR = RTrim(strDecR) + Mid(strBase, b + 1, 1)
n = n - 1
Loop
Label3.Caption = Text1.Text & " 转换为 " & Text2.Text & " 进制后为: "
Text3.Text = strDecR

End Sub

Private Sub Form_Load()
    Label1.Caption = "十进制数"
    Label2.Caption = "进制"
    Label3.Caption = "以下是转换结果:"
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
End Sub

运行此源程序,分别输入要转换的十进制数和要转换的进制,如第一个文本框输入32456,第二个进制框输入16,鼠标点击窗体,即可以在第三个文本框中输出转换后的数,7EC8
 
*********************************
新世纪计算机基础教育丛书 丛书主编:谭浩强
Visual Basic 程序设计教程 题解与上机指导(第四版) 刘炳文 编著

来源:visual basic程序设计教程第四版答案(刘炳文)

本文链接:http://www.wb98.com/vb1/post/vb_7.14.html

本站文章搜索:

<< 上一篇下一篇 >>

搜索

Tags列表

扫我手机登录

赞助商链接