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.

hex

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;
}

Komentarze

pablo

o rany – takie proste sposoby – strtol, strtol na zamianę dziesiętny->n-ty i n-ty->dziesiętny, a ludzie piszą swoje własne funkcje (np. ja)
fajnie że tu wpadłem, bo o funkcji strtol nie miałem pojęcia, a zaoszczędzi to 5-10 min na maturze (o ile będzie zadanie z zamianą systemu liczbowego)

darek – użyj po prostu funkcji ATOI albo STRTOL, w czym ty masz problem człowieku

Darek

Algorytm zapisany w ten sposób tylko wypisuje liczbę w postaci szesnastkowej, ale nie da się jej zapisać do innej zmiennej. Byłbym wdzięczny gdyby ten wpis został o to uzupełniony.
Pozdrawiam

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *