ник: Lukas
Новая версия (с учетом поправки ShadowOfSun), надеюсь последняя:
Public Function LongToBinStr(ByVal Number As Long, Optional Digits As Long = 32) As String
Dim i As Long
Const ZERO As String = "0"
Const ONE As String = "1"
LongToBinStr = String(Digits, ZERO)
For i = Digits To 1 Step -1
If Number Mod 2 Then
Mid$(LongToBinStr, i, 1) = ONE
End If
Number = Number \ 2
If Number = 0 Then Exit Function ' уменьшает время на 30% при 32 знаках и 15% при 24 знаках
Next i
End Function
|
Итого: по сравнению с первой строковой функцией (Двоичное) скорость выросла более чем в 5 раз.