Ó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.
Spis treści
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;
}