| Код | Option Explicit
Private Sub Command1_Click() Dim i As Long Dim j As Long
i = Val(Text1.Text)
Text2.Text = "" Do While i > 0 If i / 2 = i \ 2 Then Text2.Text = Text2.Text & "0" Else: Text2.Text = Text2.Text & "1" End If i = i \ 2 Loop
Text2.Text = StrReverse(Text2.Text) ' узнал из справочника ' до этого пользовался по старинке, как в Си : 'a(0) = 12 'a(1) = 13 'a(2) = 0 'a(3) = -43 'For i = 3 To 0 Step -1 ' вывод :) 'Next i ' здесь проверяем: если битов не хватает до восьми (или их 8), то заполняем ' пустые регистры нулями, пока остаток от целочисленного деления не будет = 0 : If Len(Text2.Text) <= 8 Then For j = 0 To 7 - Len(Text2.Text) Text2.Text = "0" & Text2.Text Next j Else: Do Text2.Text = "0" & Text2.Text Loop While Len(Text2.Text) Mod 8 <> 0 End If
End Sub
|
Написал программульку, которая переводит из 10-ной системы в двоичную. Вопрос, короче такой: какие есть способы перевода десятиричных чисел в 16-тиричные, восьмиричные - в основном-то я знаю, как это делается, просто нужны САМЫЕ ЭЛЕМЕНТАРНЫЕ способы типа того, который я на VB написал. Есть еще и метод табличной подстановки, но он, ИМХО, самый тупой из всех. И самый простой способ перевода дробных чисел в 2-ную систему, кто знает, расскажите.
P.S. Перелистывал древние книжки по бейсику (не Quick !) и нашел программку, делающую, то же, что и моя, но там было штук 100 Goto , поэтому ни фига не поняв, сделал по-нормальному. Я подумал: "а в бейсиках до QBasic, что вообще не было оператора Do ... loop While/Until/Wend? Просто валялся от смеха, когда читал исходники 20-летней давности " |