Берешь число, делишь его на основание нужной системы, смотришь результат. От того, что было отнимаешь полученное целое число, а остаток опять делишь. И так пока результат не будет меньше делителя. В конце все результаты вычитания(вместе с последним результатом деления) записываешь справа на лево. Ответ готов!
VB_D3D_Денис писал(а):А из системы с произвольным основанием как перевести обратно в десятичную?
Хакер писал(а):Уважаемый Денис
Точно также
PS. Почему VB это не PHP. Там есть встроенная функция для таких дел.
Function DecToBin(Value As Long) As String
Dim i, Ret
If Value = 0 Then Value = 1
Do While Value <> 1
If Value / 2 = Value \ 2 Then
Ret = "0" + Ret
Value = Value / 2
Else
Ret = "1" + Ret
Value = Value \ 2
End If
Loop
If Value = 1 Then Ret = "1" + Ret
Bin = Ret
End Function
Function BinToDec(Number As String) As Long
Dim i, j, S
For i = Len(BinNumber) To 1 Step -1
S = S + (Val(Mid(BinNumber, i, 1)) * (2 ^ j))
j = j + 1
Next
Dec = S
End Function
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13