Binarny system liczbowy

kategoria: Zadania z programowania

System binarny (dwójkowy) – jest podstawowy system liczbowy spotykany w informatyce i elektronice. Podstawą jest liczba 2. Jego zrozumienie jest niezbędne do zrozumienia podstaw funkcjonowania wielu urządzeń cyfrowych w tym komputerów.

System binarny (dwójkowy)

Liczbę z systemu binarnego na dziesiętny (i na odwrót) można łatwo zamienić w kalkulatorze Windows. Aby móc to zrobić musisz włączyć kalkulator w trybie “programisty”. Jest to najszybszy sposób na zamianę liczb z systemu dziesiętnego na binarny i odwrotnie.

Warto także znać metodę obliczania liczby posiadając tylko kartkę papieru. Jest to bardzo częste zadanie na maturach z informatyki. Na poniższym obrazku została zaprezentowana zamiana liczby dziesiętnej 42 oraz liczby binarnej 101010 między sobą:

system-binarny-zamiana

Ręczna zamiana liczby binarnej na dziesiętną

Aby zamienić liczbę binarną na dziesiętną należy zapisać ją od tył. Następnie każdą z cyfr cząstkowych mnożymy przez podstawę systemu binarnego a więc liczbę 2. Ostatnim krokiem jest podniesienie kolejno wszystkich cyfr do potęgi numerując od 0 do n. Zsumowanie ilorazu da nam wynik w postaci dziesiętnej.

Ręczna zamiana liczby dziesiętnej na binarną

Aby zamienić liczbę dziesiętną na binarną ciągle dzielimy ją przez podstawę systemu binarnego – a więc liczbę 2. Za każdym razem zapisujemy resztę z dzielenia. Operację powtarzamy aż dojdziemy do zera. Wynik należy odczytać od tył.

Kod programu w C++ (dwójkowy na dziesiętny)

Konwersję liczby dwójkowej na dziesiętną najlepiej przeprowadzić za pomocą funkcji strtol z biblioteki cstdlib. Przykładowy program:

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

using namespace std;

int bin2dec (string binarna)
{
    int dziesietna = strtol(binarna.c_str(), NULL, 2);

    return dziesietna;
}

int main()
{
    string liczba;
    
    cout << "Podaj liczbe binarna:" << endl;
    cin >> liczba;
    cout << bin2dec(liczba) << endl;
    
    system ("pause >nul");
    return 0;
}

Kod programu w C++ (dziesiętny na dwójkowy)

Konwersję liczby dziesiętnej na dwójkową najlepiej przeprowadzić za pomocą funkcji itoa z biblioteki cstdlib. Przykładowy program:

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

using namespace std;

string dec2bin (int dziesietna)
{
    char binarna[255];
    itoa(dziesietna, binarna, 2);
    
    return (string)binarna;
}

int main()
{
    int liczba;

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

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