Двоичные числа в VB6

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Goblin
Сообщения: 8
Зарегистрирован: 12 янв 2007, 05:24

Доброго всем времени!!! ;)
Подскажите пожалуйста, как мне решить данную проблему:

Label1.Caption = однобайтному двоичному числу (напр. 00101001).
Каким образом его можно преобразовать в десятичное, с записью
результата в Label2.Caption?

Заранее спасибо. Гоблин.
Vikar
Сообщения: 51
Зарегистрирован: 24 апр 2007, 14:21

Можно составить функцию перевода двоичного числа в десятичное, например:

Код: Выделить всё

Public Function Bin2Dec(bin) As Integer
Dim n As Integer
Dim dk As Integer
    dec = 0
    i = 0
    Do While bin > 0
       dec = dec + (bin Mod 10) * 2 ^ i
       bin = bin \ 10
       i = i + 1
    Loop
    Bin2Dec = dec
End Function
А затем использовать ее в программе например так:

Код: Выделить всё

    Label2.Caption=CStr(Bin2Dec(Val(Label1.Caption)))
Поскольку Caption - это строка, то перед использованием в функции Bin2Dec ее следует преобразовать в число, а затем полученный результат снова преобразовать в строку.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Как вариант:

Код: Выделить всё

Dim i as integer, k as integer
Dim n as long
Dim s as string
s = label1.caption
n = 0
k = Len(s)
For i = k To 1 Step -1
    Select Case Mid$(s, i, 1)
        Case "1"
            n = n + 2 ^ (k - i)
        Case "0"
    End Select
Next i
Label2.Caption = str(n)
Goblin
Сообщения: 8
Зарегистрирован: 12 янв 2007, 05:24

Благодарю за подсказку, все сделал. Работает.
Ответить