永发信息网

帮我解释下十进制转二进制这个编程的意思

答案:1  悬赏:30  手机版
解决时间 2021-07-20 08:37
  • 提问者网友:聂風
  • 2021-07-19 16:30

OptionExplicit
Private Function TenturnTwo(ByVal varNum As Long)
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)
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

可以的话,也帮我解释下这个的语言

for i=0 to 12
p=m mod 2
if p=1 then
have=have&i&","
end if
m=int(m/2)
if m=0 then
zhuan=have
exit function
end if
next
end function

最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-07-19 16:55

进制间转换应不复杂,楼主只要掌握了之间的换算方法之后是非常简便的,我现在把一些转换方法贴给你,如果看过之后,还是对上面的代码有些迷惑的话,可以和用Q联系。


1.十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
故二进制为100101110


2.二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0
+8+0+32+64+0=107.
二进制01101011=十进制107.

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯