如何将二进制整数转换为十进制整数

javafan8310 2003-11-30 10:32:41
如何将二进制整数转换为十进制整数。请详细说明。谢谢!!
...全文
273 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
TimLee✿ 2003-12-01
  • 打赏
  • 举报
回复


对,看看二进制和10进制之间互相转换的关系~
northwolves 2003-11-30
  • 打赏
  • 举报
回复
根据二进制的定义,不难明白
northwolves 2003-11-30
  • 打赏
  • 举报
回复
another method:

Function BinTodec(ByVal bin As String) As Long '二进制转十进制
Dim hexs As New Collection, hexx As String
With hexs
.Add "0", "0000"
.Add "1", "0001"
.Add "2", "0010"
.Add "3", "0011"
.Add "4", "0100"
.Add "5", "0101"
.Add "6", "0110"
.Add "7", "0111"
.Add "8", "1000"
.Add "9", "1001"
.Add "A", "1010"
.Add "B", "1011"
.Add "C", "1100"
.Add "D", "1101"
.Add "E", "1110"
.Add "F", "1111"
End With
bin = String(4 - Len(bin) Mod 4, "0") & bin

For i = 1 To Len(bin) Step 4
hexx = hexx & hexs(Mid(bin, i, 4))
Next
BinTodec = CLng("&H" & hexx)
End Function
doudou8090 2003-11-30
  • 打赏
  • 举报
回复
两位大哥,能详细说明一下吗
northwolves 2003-11-30
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
MsgBox bindec("10111110000")
End Sub
Function bindec(x As String) As Long ' 2 TO 10
Const BINS = "01"
For i = 1 To Len(x)
If InStr(1, BINS, Mid(x, i, 1)) <> 0 Then GoTo OK
MsgBox "NOT A BINARY FORMAT!": Exit Function
Next
OK:
For i = 1 To Len(x)
Y = Y + Mid(x, i, 1) * 2 ^ (Len(x) - i)
Next
bindec = Y
End Function
TimLee✿ 2003-11-30
  • 打赏
  • 举报
回复
刚才的代码有问题~~

看这个!


Private Function TenturnTwo(ByVal varNum As Long) '10->2
Dim returnString As String, ModNum As Integer
Do While varNum > 0
ModNum = varNum Mod 2
varNum = varNum \ 2
returnString = Trim(Str(ModNum)) + returnString
Loop
TenturnTwo = returnString
End Function

Private Function TwoturnTen(ByVal varString As String) '2->10
Dim SLen As Long, I As Long, returnNum As Long
SLen = Len(varString)
For I = 0 To SLen - 1
returnNum = returnNum + Val(Mid(varString, I + 1, 1)) * (2 ^ (SLen - I - 1))
Next
TwoturnTen = returnNum
End Function
TimLee✿ 2003-11-30
  • 打赏
  • 举报
回复
OptionExplicit
Private Function TenturnTwo(ByValvarNumAsLong) '10->2
Dim returnStringAsString,ModNumAsInteger
Do WhilevarNum>0
ModNum=varNumMod2
varNum=varNum\2
returnString=Trim(Str(ModNum))+returnString
Loop
TenturnTwo=returnString
End Function

Private Function TwoturnTen(ByValvarStringAsString) '2->10
DimSLenAsLong,I As Long,returnNumAsLong
SLen=Len(varString)
ForI=0ToSLen-1
returnNum=returnNum+Val(Mid(varString,I+1,1))*(2^(SLen-I-1))
Next
TwoturnTen=returnNum
End Function

7,759

社区成员

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

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