如何将十进制数转换成二进制数

zjlsyxf 2001-07-19 11:07:47
...全文
177 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ninputer 2001-07-19
  • 打赏
  • 举报
回复
这是我老早以前编写的2、8、10、16进制转换程序,可能对你有帮助:
Dim Number As Long
Dim Jinzhi As Integer
Dim OJinzhi As Integer

Private Sub cmdClose_Click()
Me.Hide
End Sub

Private Sub Form_Load()
Jinzhi = 10
OJinzhi = 10
End Sub

Private Sub optInput_Click(Index As Integer)
Select Case Index
Case 0
Jinzhi = 10
Case 1
Jinzhi = 8
Case 2
Jinzhi = 16
Case 3
Jinzhi = 2
End Select
Call txtInput_Change
End Sub

Private Sub optOutput_Click(Index As Integer)
Select Case Index
Case 0
OJinzhi = 10
Case 1
OJinzhi = 8
Case 2
OJinzhi = 16
Case 3
OJinzhi = 2
End Select
Call txtInput_Change
End Sub

Private Sub txtInput_Change()
On Error GoTo InputError
If txtInput = "" Then txtOutput = ""
Select Case Jinzhi
Case 10
txtInput.MaxLength = 0
Number = CLng(txtInput)
Case 8
txtInput.MaxLength = 8
Number = CLng(Val("&O" + txtInput))
Case 16
txtInput.MaxLength = 8
Number = CLng(Val("&H" + txtInput))
Case 2
txtInput.MaxLength = 10
Number = CLng(txtInput)
Dim X As Long
For i = 1 To Len(Str(Number))
X = (X + Val(Mid(Str(Number), i, 1))) * 2
DoEvents
Next
Number = X / 2
End Select
Call Zhuanhuan
Exit Sub
InputError:
Number = 0
txtInput = 0
txtOutput = 0
Exit Sub

End Sub
Private Sub Zhuanhuan()
On Error Resume Next
Select Case OJinzhi
Case 10
txtOutput = Number
Case 8
txtOutput = Oct(Number)
Case 16
txtOutput = Hex(Number)
Case 2
Dim T As String
Dim X As Long: X = Number
Do Until X = 1
T = Trim(Str(X Mod 2) + T)
X = Fix(X / 2)
DoEvents
Loop
txtOutput = "1" + T
End Select

End Sub
MonkeyLin 2001-07-19
  • 打赏
  • 举报
回复
Tackie(小猪)说得很对
houyingjun 2001-07-19
  • 打赏
  • 举报
回复
知道算法编个程序就实现了,其实就是为了显示。
在程序中运算大可不必这样,用&H类型的数就可以了
Tackie 2001-07-19
  • 打赏
  • 举报
回复
用原理去算:
Public Function convDecToBin(ByVal curNumber As Currency) As String
On Error GoTo convDecToBin_end
Dim strBin As String
Dim i As Long

For i = 64 To 0 Step -1

If Int(curNumber / (2 ^ i)) = 1 Then

strBin = strBin & "1"
curNumber = curNumber - (2 ^ i)

Else

If strBin <> "" Then
strBin = strBin & "0"
End If

End If

Next

convDecToBin = strBin

convDecToBin_end:
If Err <> 0 Or strBin = "" Then convDecToBin = "-E-"
Exit Function
End Function

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧