求 vb 八进制转化为二进制的代码

如题所述

分两步,先八进制转十进制,再十进制转二进制即可。

Private Sub Command1_Click()
Text2 = OCT_to_DEC(Trim(Text1))
Text2 = DEC_to_BIN(CStr(Text2))

End Sub

Public Function OCT_to_DEC(ByVal Oct As String) As Long '八进制转十进制
Dim i As Long
Dim B As Long
     For i = 1 To Len(Oct)
         Select Case Mid(Oct, Len(Oct) - i + 1, 1)
              Case "0": B = B + 8 ^ (i - 1) * 0
              Case "1": B = B + 8 ^ (i - 1) * 1
              Case "2": B = B + 8 ^ (i - 1) * 2
              Case "3": B = B + 8 ^ (i - 1) * 3
              Case "4": B = B + 8 ^ (i - 1) * 4
              Case "5": B = B + 8 ^ (i - 1) * 5
              Case "6": B = B + 8 ^ (i - 1) * 6
              Case "7": B = B + 8 ^ (i - 1) * 7
          End Select
      Next i
     OCT_to_DEC = B
End Function
Public Function DEC_to_BIN(Dec As Long) As String    '十进制转二进制
DEC_to_BIN = ""
 Do While Dec > 0
DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
Dec = Dec \ 2
Loop
End Function

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-02
用途:将八进制转化为二进制
输入:Oct(八进制数)
输入数据类型:String
输出:OCT_to_BIN(二进制数)
输出数据类型:String
输入的最大数为2147483647个字符
Public OCT_to_BIN(ByVal Oct As String) As String
Dim i As Long
Dim B As String

For i = 1 To Len(Oct)
Select Case Mid(Oct, i, 1)
Case "0": B = B & "000"
Case "1": B = B & "001"
Case "2": B = B & "010"
Case "3": B = B & "011"
Case "4": B = B & "100"
Case "5": B = B & "101"
Case "6": B = B & "110"
Case "7": B = B & "111"
End Select
Next i
While Left(B, 1) = "0"
B = Right(B, Len(B) - 1)
Wend
OCT_to_BIN = B
End本回答被提问者和网友采纳
第2个回答  2015-12-02
做了会采纳吗?
相似回答