Как перевести число из одной системы счисления в другую. - VB
Формулировка задачи:
Добрый день! Помогите пожалуйста, нужно создать программку:
TextBox1.Text - вводится любое число в любой СС (от двоичной до 16)
TextBox2.Text - задается СС в которой ввели число
TextBox3.Text - задается СС в которую нужно перевести введенной выше число (СС от 2 до 16)
TextBox4.Text - выводится число в той СС, которая введена в TextBox3.Text
Есть программа, но она не доделана. Не могу допереть как дальше
Не переводит из 16-ричн. системы в любую другую и т.д.
Помогите пожалуйста!
Листинг программы
- Dim a, b, c, d, n, h, m, k, s, x As Integer
- Private Sub CommandButton1_Click()
- s = Len(TextBox1.Text)
- a = Val(TextBox1.Text)
- b = Val(TextBox2.Text)
- c = Val(TextBox3.Text)
- d = Val(TextBox4.Text)
- TextBox5.Text = s
- k = 0
- h = a
- m = ""
- If b = 10 Then
- While h > 0
- n = h Mod c
- If n > 10 Then
- If n = 10 Then n = "A"
- If n = 11 Then n = "B"
- If n = 12 Then n = "C"
- If n = 13 Then n = "D"
- If n = 14 Then n = "E"
- If n = 15 Then n = "F"
- End If
- m = n & m
- h = Int(h / c)
- k = k + 1
- Wend
- TextBox4.Text = m
- End If
- If c = 10 Then
- n = a
- m = 0
- While s > 0
- h = n Mod 10
- m = m + h * (b ^ k)
- k = k + 1
- s = s - 1
- n = Int(n / 10)
- Wend
- TextBox4.Text = m
- End If
- If b <> 10 Then
- If c <> 10 Then
- n = a
- g = s
- m = 0
- While g > 0
- h = n Mod 10
- m = m + h * (b ^ k)
- k = k + 1
- g = g - 1
- n = Int(n / 10)
- Wend
- TextBox7.Text = m
- h = m
- x = Str(m)
- g = Len(x)
- TextBox6.Text = g
- k = 0
- m = ""
- While h > 0
- n = h Mod c
- If n > 10 Then
- If n = 10 Then n = "A"
- If n = 11 Then n = "B"
- If n = 12 Then n = "C"
- If n = 13 Then n = "D"
- If n = 14 Then n = "E"
- If n = 15 Then n = "F"
- End If
- m = n & m
- h = Int(h / c)
- k = k + 1
- Wend
- TextBox4.Text = m
- End If
- End If
- End Sub
Решение задачи: «Как перевести число из одной системы счисления в другую.»
textual
Листинг программы
- Function LngToStr(ByVal Value As Long, Baza As Byte) As String
- Dim M As Byte
- Do
- M = Value Mod Baza + 48
- If M > 57 Then M = M + 7
- Value = Value \ Baza
- LngToStr = Chr$(M) & LngToStr
- Loop While Value > 0
- End Function
- Function StrToLng(Value As String, Baza As Byte) As Long
- Dim M As Byte, I As Byte
- For I = 1 To Len(Value)
- M = Asc(Mid$(Value, I, 1)) - 48
- If M > 9 Then M = M - 7
- StrToLng = StrToLng * Baza + M
- Next I
- End Function
- Private Sub CommandButton1_Click()
- TextBox4=LngToStr(StrToLng(TextBox1.text, val(TextBox2.Text)), val(TextBox3.Text))
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д