VBA:10进制转2进制

注意:这两个函数都修改了参数的值,如果想再次使用相应的值应该提前保留

如:a=10;b=DECtoBIN(a);则结果:b=1010,a=0

Public Function DECtoBIN(Dec As Double) As String
    DECtoBIN = ""
    Do While Dec > 0     '这个循环就是辗转相除法的循环
        DECtoBIN = Dec Mod 2 & DECtoBIN     'DECtoBIN 是每次产生的余数连成的字符串
        Dec = Dec \ 2       'dec为下次要进行除法的被除数。
    Loop
End Function

将10进制数转为2进制,并保证8位数组成,不足8位,左边补0

Public Function DECtoBINa(Dec As Double) As String
DECtoBINa = ""
Do While Dec > 0 '这个循环就是辗转相除法的循环
DECtoBINa = Dec Mod 2 & DECtoBINa 'DECtoBIN 是每次产生的余数连成的字符串
Dec = Dec \ 2 'dec为下次要进行除法的被除数。
Loop
cd = Len(DECtoBINa)
If cd < 8 Then
DECtoBINa = String(8 - cd, "0") & DECtoBINa
End If
End Function

posted @ 2021-08-08 12:38  myrj  阅读(709)  评论(0编辑  收藏  举报