Szesnastkowy system liczbowy
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.
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
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
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