Navigace: Hlavní stránka -> BASIC -> 07 Podprogramy -> 07.06 Funkce - převod čísla z desítkové do hexadecimální soustavy

MENU

07.06 Funkce - převod čísla z desítkové do hexadecimální soustavy

Zadání:
Sestavte funkci na převod desítkového čísla do hexadecimální soustavy.
Řešení:
Funkce je řešena postupným dělením zadaného desítkového čísla číslem 16 a na základě zbytku tohoto dělení se postupně
ke znakovému řetězci přidává zprava tento zbytek. Pokud je zbytek větší než 9, převedeme ho na příslušné písmeno
(A=10, B=11, C=12, D=13, E=14, F=15). Dělení končí, pokud výsledek bude nulový.

Př.:
11961 : 16 = 747, zb. 9
747 : 16 = 46, zb. 11 (=B)
46 : 16 = 2, zb. 14 (=E)
2 : 16 = 0, zb. 2

Výsledek: 2EB9
Module Module1

    Function prevod16(ByVal x As Integer) As String
        Dim y As String
        Dim zb As Byte

        y = "H"
        Do
            zb = x Mod 16
            If zb >= 10 And zb <= 15 Then
                y = Chr(zb + 55) + y
            Else
                y = Chr(zb + 48) + y
            End If
            x = x \ 16
        Loop Until x = 0
        prevod16 = y
    End Function

    Sub Main()

        Dim a As Integer
        Dim s As String

        Console.Write("Zadejte cislo v desitkove soustave: ")
        a = Console.ReadLine

        s = prevod16(a)

        Console.WriteLine("{0}D={1}", a, s)

        Console.ReadLine()

    End Sub

End Module
program ke stažení