vb中,如何把十进制转换为二进制

zcfhero 2008-03-26 08:23:02
Private Sub tran_Click()
x = Val(D_in.Text)
If x > 0 Then
For i = 0 To 31
a(i) = x Mod 2
x = x \ 2
Next i
B_out.Text = a(i)
End If
End sub
有什么问题,总是不能正常运行
...全文
3429 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
这个简单啊,网上搜一下就得到答案了.
masteryuri 2008-04-28
  • 打赏
  • 举报
回复
楼主要的应该是那个除2求余的方法实现把
Private Sub tran_Click()
Dim x As Long
Dim Out As String
x = CLng(Text1.Text)
Do

z = x Mod 2
x = (x - z) / 2
Out = CStr(z) & Out
Loop While x > 0
Text2.Text = Out
End sub
Li103ZzZ 2008-04-02
  • 打赏
  • 举报
回复
7楼代码写的不错
lym616 2008-03-30
  • 打赏
  • 举报
回复
dim a as integer
dim b as byte
b=cbyt(a)
这样好像就可以
barenx 2008-03-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 theforever 的回复:]
另外一个方法是,可以先用HEX函数把十进制数转换成HEX串,然后对每个HEX值(比如7F的7和F,单个单个来)转换成对应的二进制形式
[/Quote]
将0-F做成表,然后使用hex函数查表连接字符数组
zdingyun 2008-03-29
  • 打赏
  • 举报
回复
前代码不能处理负数
Option Explicit
Dim sBin As String
Dim sHex As String
Private Sub Command1_Click()
sHex = Hex(Val(Text1))
Text2 = sHex
HexToBin (sHex)
Text3 = sBin
sBin = ""
End Sub

Private Sub Form_Load()
Text1 = ""
End Sub

Public Function HexToBin(ByVal sHex As String) As String '处理16进制转换2进制代码
Const s1 = "0000101001101111000", s2 = "0125A4936DB7FEC8"
Dim i As Integer
sHex = UCase(sHex)
For i = 1 To Len(sHex)
sBin = sBin & Mid(s1, InStr(1, s2, Mid(sHex, i, 1)), 4)
Next i
End Function
zdingyun 2008-03-29
  • 打赏
  • 举报
回复
以下代码根据z_wenqian 昵称:网络共享者的代码修改,详细见:http://topic.csdn.net/u/20080108/14/67783c1e-1a7e-4613-904c-dda5e08a380b.html
Option Explicit
Dim sBin As String
Dim sHex As String
Private Sub Command1_Click()
sHex = Text1
HexToBin (sHex)
Text2 = sBin
sBin = ""
End Sub

Private Sub Form_Load()
Text1 = ""
End Sub

Public Function HexToBin(ByVal sHex As String) As String '处理16进制转换2进制代码
Const s1 = "0000101001101111000", s2 = "0125A4936DB7FEC8"
Dim i As Integer
sHex = UCase(sHex)
For i = 1 To Len(sHex)
sBin = sBin & Mid(s1, InStr(1, s2, Mid(sHex, i, 1)), 4)
Next i
End Function
东方之珠 2008-03-27
  • 打赏
  • 举报
回复
Look at book!
  • 打赏
  • 举报
回复
另外一个方法是,可以先用HEX函数把十进制数转换成HEX串,然后对每个HEX值(比如7F的7和F,单个单个来)转换成对应的二进制形式
cbm6666 2008-03-26
  • 打赏
  • 举报
回复
'添加Text1

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then MsgBox Format(D2B(Val(Text1.Text)), "00000000"): KeyAscii = 0
End Sub

Public Function D2B(ByVal Dec As Long) As String
Do
D2B = Dec Mod 2 & D2B
Dec = Dec \ 2
Loop While Dec
End Function

whatinrain 2008-03-26
  • 打赏
  • 举报
回复
试试看这个:

Dim x As Integer
Dim i As Integer
B_Out.Text = ""
x = Val(D_In.Text)
If x > 0 Then
For i = 0 To 31
B_Out.Text = CStr(x Mod 2).Trim + B_Out.Text
x = x \ 2
Next i
End If

1,502

社区成员

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

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