Binarny system liczbowy

Ostatania modyfikacja: 21 kwietnia 2019, kategoria: Matura z informatyki

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ą:

bin

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:

Użytkownik Ktoś napisał:

05 stycznia 2013


dziesiętny na dwójkowy nie działa tak jak powinien działać, wypisuje on te liczby ale w odwrotnej kolejności :). Proponuje użycie itoa w taki sposób :D:

int liczba = 1234;
char bin[255];
cout < < itoa(liczba, bin, 2) << endl;

Pozdrawiam :)

Użytkownik Karol napisał:

06 stycznia 2013


Dzięki za znalezienie błędu.

Pomysł z użyciem itoa jest bardzo dobry i działa dla kilku podstaw, możliwe że go opublikuję.

Użytkownik muttley napisał:

03 kwietnia 2013


Podobny myk jak z itoa można wykonać w drugą stronę.
To zamieni liczbę w binarnym (zapisaną w zmiennej typu string) na dziesiętny
return strtol(liczba.c_str(), NULL, 2);
Ostatni parametr to system w którym zapisana jest liczba, można to zrobić dla dowolnego typu zapisywania liczb (no, myślę że bezpiecznie jest tego używać do końca alfabetu).

Tylko pytanie czy będzie za to max punktów :)

Zachęcam Cię do zostawienia komentarza!

Ilość znaków: 0