编写VB程序 编写Sub过程 把任意一个十进制数N分别转换成二进制八进制十六进制表示的数

 我来答
数学与计算机编程
2017-06-16 · TA获得超过2160个赞
知道大有可为答主
回答量:2312
采纳率:80%
帮助的人:575万
展开全部

设计界面:

代码:

Private Sub Command1_Click()
  Dim IntegerPart As Long, DecimalPart As Double
  Dim Carry(), CharacterCode(15) As String
  Carry = Array(2, 8, 16)
  IntegerPart = Int(Val(Text1.Text))
  DecimalPart = Val(Text1.Text) - Int(Val(Text1.Text))
  For i = LBound(CharacterCode) To UBound(CharacterCode)
    Select Case i
      Case 0 To 9
        CharacterCode(i) = Chr(48 + i)
      Case Else
        CharacterCode(i) = Chr(55 + i)
    End Select
  Next i
  For i = LBound(Carry) To UBound(Carry)
    Label2(i) = Transformation(Carry(i), CharacterCode, IntegerPart, DecimalPart)
  Next i
End Sub

Private Function Transformation(ByVal CarrySystem As Integer, ByRef CharacterCode() As String, ByVal IntegerPart As Long, ByVal DecimalPart As Double) As String
  Dim r As Integer, strIntegerPart As String, q As Integer, strDecimalPart As String
  Do
    r = IntegerPart Mod CarrySystem
    IntegerPart = IntegerPart \ CarrySystem
    strIntegerPart = CharacterCode(r) + strIntegerPart
  Loop Until IntegerPart = 0
  Do
    q = Int(DecimalPart * CarrySystem)
    DecimalPart = DecimalPart * CarrySystem - q
    strDecimalPart = strDecimalPart + CharacterCode(q)
  Loop Until DecimalPart = 0
  Transformation = strIntegerPart + "." + strDecimalPart
End Function

运行界面:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式