Здраствуйте!
Как в VB6 вывести целое число в строковую переменную в бинарном виде?
Спасибо
dima-pol писал(а):Как в VB6 вывести целое число в строковую переменную в бинарном виде?
Хакер писал(а):Пример? И куда вывести?
Public Function IntToBin(ByVal X As Integer) As String
If X < 0 Then
Dim Q As Integer
IntToBin = IntToBin(Not X)
For Q = 1 To Len(IntToBin)
Mid$(IntToBin, Q, 1) = Chr$(Asc(Mid$(IntToBin, Q, 1)) Xor 1)
Next Q
For Q = Len(IntToBin) To 15
IntToBin = "1" & IntToBin
Next Q
Else
IntToBin = ""
Do
IntToBin = (X And 1) & IntToBin
X = X \ 2
Loop While X
End If
End Function
Public Sub Main()
MsgBox (IntToBin(117))
MsgBox (IntToBin(-117))
MsgBox (IntToBin(0))
End Sub
Qwertiy писал(а):Что тут может быть непонятно?
Function ValueToBinRepresentation(ByVal value As Long) As String
Const ConvTable$ = "0000000100100011010001010110011110001001101010111100110111101111"
Dim i As Long, qbitpart As Long, msb As Boolean
ValueToBinRepresentation = String(32, "0")
If value And &H80000000 Then
value = value And Not &H80000000: msb = True
End If
For i = 7 To 0 Step -1
qbitpart = value And &HF: value = value \ &H10
Mid$(ValueToBinRepresentation, 1 + i * 4, 4) = Mid$(ConvTable, 1 + qbitpart * 4, 4)
Next i
If msb Then Mid$(ValueToBinRepresentation, 1, 1) = "1"
End Function
Хакер писал(а):Это делается это не таким уродским образом, а вот так:
Function ValueToBinRepresentation8(ByVal value As Long) As String
Const ConvTable$ = "000001010011100101110111"
Dim i As Long, str As String
str = Oct(value)
ValueToBinRepresentation8 = ""
For i = 1 To Len(str)
ValueToBinRepresentation8 = ValueToBinRepresentation8 & Mid$(ConvTable, 1 + (Asc(Mid$(str, i, 1)) - 48) * 3, 3)
Next i
ValueToBinRepresentation8 = String(32 - Len(ValueToBinRepresentation8), "0") & ValueToBinRepresentation8 ' эта команда не обязательна
End Function
Сейчас этот форум просматривают: Google-бот и гости: 42