例032:输入一个十进制数,将其转换为二进制,八进制或十六进制数

文章介绍了如何使用VisualBasic编程语言将十进制数转换成二进制、八进制或十六进制,通过`Trans`函数计算余数并逆序排列。同时展示了Form1中的控件事件处理,如点击、列表选择和输入验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将十进制数除以进制(2,8,16),得出余数和商,将商循环地除以进制,直到商为0。将每次相除产生的余数逆排列,就是转换的结果。例如:45=>101101。

  1. 在窗体上安排如图28的控件。

                           图28

  1. 输入代码:
Dim Shared Number As Integer, n As Integer '窗体公用变量

Dim Shared Bin1() As String

Sub Form1_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)

   Dim i As Integer

   Dim myChar(15) As String, Ch As String

   For i = 0 To 9

      myChar(i) = Str(i)  

   Next

   For i = 0 To 5

      myChar(10 + i) = Chr(Asc("A") + i)  

   Next

   Trans(Bin1(),myChar())

   For i = UBound(Bin1) To 1 Step -1

     Ch=Ch & Bin1(i)  

   Next

   txtResult.Text=Ch

End Sub



'[Form1]事件 : 窗口完全显示后。

Sub Form1_Shown(hWndForm As hWnd,UserData As Integer)

   n=2

End Sub



'[Form1.cmbSelect]事件 : 列表框中更改当前选择时

Sub Form1_cmbSelect_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd)

   n = ValInt(cmbSelect.Text)

End Sub



'[Form1.txtInput]事件 : 失去输入焦点

Sub Form1_txtInput_EN_KillFocus(hWndForm As hWnd, hWndControl As hWnd)

   Dim response As Integer

   If Val(txtInput.Text) <> 0 Then

      Number = Val(txtInput.Text)

   Else

      response = MsgBox("数据输入错误!")

      txtInput.SetFocus()

   End If

End Sub

Sub Trans(Arry() As String, S() As String)

   Dim r As Integer, k As Integer

   k = 0

   Do Until Number = 0

      r = Number Mod n

      k = k + 1

      ReDim Preserve Arry(k)

      Arry(k) = S(r)

      Number = Int(Number / n)

   Loop  

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值