Szesnastkowy system liczbowy

kategoria: Zadania z programowania

System heksadecymalny (szesnastkowy) – system liczbowy, w którym podstawą jest liczba 16. Każda z liczb heksadecymalnych posiada swój odpowiednik dziesiętny. Często stosowany w informatyce i telekomunikacji. Używany do adresowania pamięci, zapisywania adresów sieciowych czy kolorów RGB.

System szesnastkowy (heksadecymalny)

System szesnastkowy jest jednym z najczęściej używanych w informatyce systemów. Jest używany przede wszystkim w adresowaniu pamięci aplikacji. Za jego pomocą zapisywane są adresy IP, adres MAC kart sieciowych, a także kodowane są w nim kolory RGB. Na prawdę warto umieć szybko go przeliczać.

Jest on wbudowany w kalkulator Windows, dzięki czemu łatwo możemy przeliczać liczby pomiędzy różnymi systemami liczbowymi.

system-szesnastkowy-zamiana

Kod programu w C++ (HEX na dziesiętny)

Konwersję najłatwiej przeprowadzić z użyciem cyfry strtol z biblioteki cstdlib. Przykładowy kod:

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

int hex2dec (string heksadecymalna)
{
    int dziesietna = strtol(heksadecymalna.c_str(), NULL, 16);

    return dziesietna;
}

int main()
{
    string liczba;

    cout << "Podaj liczbe heksadecymalna:" << endl;
    cin >> liczba;
    cout << hex2dec(liczba) << endl;

    system ("pause >nul");
    return 0;
}

Kod programu w C++ (dziesiętny na HEX)

Konwersję najłatwiej przeprowadzić za pomocą funkcji itoa z biblioteki cstdlib. Przykładowy kod:

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

string dec2hex (int dziesietna)
{
    char heksadecymalna[255];
    itoa(dziesietna, heksadecymalna, 16);

    return (string)heksadecymalna;
}

int main()
{
    int liczba;

    cout << "Podaj liczbe dziesietna:" << endl;
    cin >> liczba;
    cout << dec2hex(liczba) << endl;

    system ("pause >nul");
    return 0;
}