โจทย์การแปลงเลขฐานเป็นโจทย์ที่มักพบบ่อยในการเรียนการสอนของนักศึกษาวิทยาการคอมพิวเตอร์
การแปลงเลขฐาน16 ให้เป็นเลขฐาน 10 ทำได้โดยวิธีการคูณตัวเลขฐาน 16 ในแต่ละหลักด้วยค่าประจำตำแหน่ง แล้วนำผลลัพธ์ที่ได้มารวมกัน จะได้เป็นค่าของเลขฐานสิบ
ต.ย. (FE)16 มีค่าเท่าใร่ในฐานสิบ
F = 15 , 15*16^1 = 240
E = 14 , 14*16^0 = 14
F + E = 240 + 14
254
(FE)16 = (254)10
ออกแบบหน้าจอโปรแกรมดังรูป


เข้าไปที่หน้า Code แล้วสร้างฟังก์ชัน
Private Function HEX_to_DEC(ByVal h As String)
Dim n As Integer
Dim L As Integer = h.Length
Dim k As Integer
Dim M As Integer
For i As Integer = 1 To L
Dim j As String
j = Mid(h, i, 1)
If j = "F" Or j = "f" Then
k = 15
ElseIf j = "E" Or j = "e" Then
k = 14
ElseIf j = "D" Or j = "d" Then
k = 13
ElseIf j = "C" Or j = "c" Then
k = 12
ElseIf j = "B" Or j = "b" Then
k = 11
ElseIf j = "A" Or j = "a" Then
k = 10
ElseIf j = "9" Then
k = 9
ElseIf j = "8" Then
k = 8
ElseIf j = "7" Then
k = 7
ElseIf j = "6" Then
k = 6
ElseIf j = "5" Then
k = 5
ElseIf j = "4" Then
k = 4
ElseIf j = "3" Then
k = 3
ElseIf j = "2" Then
k = 2
ElseIf j = "1" Then
k = 1
ElseIf j = "0" Then
k = 0
End If
M = k * Math.Pow(16, L - i)
n += M
Next i
Return n
End Function
จากนั้นก็เขียนคำสั่งในปุ่ม OK หรือ ปุ่มตกลง
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = HEX_to_DEC(TextBox1.Text)
End Sub
|