Ósemkowy system liczbowy
System ósemkowy – system liczbowy w którym podstawą jest liczba 8. Każda z liczb oktadecymalnych posiada swój odpowiednik dziesiętny. Jest to dość rzadko używany system liczbowy, jednak pytanie o jego znajomość może pojawić się na maturze z informatyki.
System ósemkowy
System ósemkowy (czyli oktalny) jest używany w informatyce stosunkowo rzadko. Przeważnie można trafić na niego adresując wskaźniki. Niemniej jednak przeliczanie na system ósemkowy (i na odwrót) bardzo często trafia się w egzaminach maturalnych. Obrazek poniżej prezentuje ręczną zamianę:
Aby zapisać liczbę oktadecymalnie w języku C++ należy poprzedzić ją cyfrą 0. Przykładowo:
short oct_number = 0377;
Dzięki temu kompilator wie, że nie podaliśmy liczby w systemie dziesiętnym.
Kod programu w C++ (ósemkowy na dziesiętny)
Aby zamienić liczbę ósemkową na dziesiętną najlepiej użyć funkcji strtol z biblioteki cstdlib. Przykładowy kod:
#include <iostream> #include <cstdlib> #include <string> using namespace std; int oct2dec (string osemkowa) { int dziesietna = strtol(osemkowa.c_str(), NULL, 8); return dziesietna; } int main() { string liczba; cout << "Podaj liczbe osemkowa:" << endl; cin >> liczba; cout << oct2dec(liczba) << endl; system ("pause >nul"); return 0; }
Kod programu w C++ (dziesiętny na ósemkowy)
Aby zamienić liczbę dziesiętną na ósemkową najlepiej użyć funkcji itoa z biblioteki cstdlib. Przykładowy kod:
#include <iostream> #include <cstdlib> #include <string> using namespace std; string dec2oct (int dziesietna) { char osemkowa[255]; itoa(dziesietna, osemkowa, 8); return (string)osemkowa; } int main() { int liczba; cout << "Podaj liczbe dziesietna:" << endl; cin >> liczba; cout << dec2oct(liczba) << endl; system ("pause >nul"); return 0; }
Komentarze
System ósemkowy to oktalny (ang. octal).
System oktadecymalny to osiemnastkowy (ang. octadecimal).
Podobnie jak szesnastkowy to hexadecimal.
Kocham Cię, serio 😀
Dzięki tej funkcji prawdopodobnie napisałam wczorajszą maturę praktyczną na 100%, a przynajmniej programowanie 🙂
Akurat systemy liczbowe były, a ten sposób jest chyba najszybszy ze wszystkich.
Jeszcze raz dziękuję 😀
stronka jest naprawdę extra 🙂 jutro mam maturę z informatyki i czuję , że pójdzie mi lepiej niż się spodziewam 🙂