Перевод из двоичной в десятичную и обратно - VB
Формулировка задачи:
Ребят, он переводит из десятичной в двоичную систему и обратно...но при переводе отрицательного десятичного числа, он переводит в двоичный вид, а обратно должен переводить дважды, как положительное и отрицательное..помогите..
Решение задачи: «Перевод из двоичной в десятичную и обратно»
textual
Листинг программы
Private Sub Command1_Click() Dim dec dec = Val(Text1.Text) Text2.Text = Trim(d_b(Abs(dec), 2, Sgn(dec))) End Sub Private Sub Command2_Click() Text1.Text = b_d(Trim(Text2.Text)) End Sub Function d_b$(ByVal x, o%, zn) On Error GoTo er Do While x > 0 d_b = CStr(x Mod o) + d_b x = x \ o Loop d_b = dop(d_b, zn) Exit Function er: MsgBox Err.Description: Err.Clear End Function Function dop$(x$, zn) Dim dt$ dt = "": dop = "" For i = 1 To 32 dt = IIf(i > Len(x), 0, Mid(StrReverse(x), i, 1)) & dt Next i If zn = -1 Then dt = x1(rev(Trim(dt)), 1) For i = 1 To 32 dop = dop & Mid(dt, i, 1): If i Mod 4 = 0 Then dop = dop & " " Next i End Function Function b_d(ByVal x$) Dim i%, zn$ On Error GoTo er Do While InStr(1, x, " ") > 0 x = Replace(x, " ", "") Loop zn = "" If Mid(x, 1, 1) = 1 Then zn = "-" x = rev(x1(x, 0)) End If b_d = 0 For i = 1 To Len(x) b_d = b_d + Val(Mid(x, 32 - i + 1, 1)) * 2 ^ (i - 1) Next i b_d = zn & b_d Exit Function er: MsgBox Err.Description: Err.Clear End Function Function rev$(x$) Dim i% For i = 1 To 32 Mid(x, i, 1) = CStr(1 - Val(Mid(x, i, 1))) Next i rev = x End Function Function x1$(x$, u%) Dim i% i = 0 Do While Mid(x, 32 - i, 1) = u Mid(x, 32 - i, 1) = 1 - u: i = i + 1 Loop Mid(x, 32 - i, 1) = u: x1 = x End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д