R1LD5JMVrpBA8
Grafika dekoracyjma składająceca się z tunelu w kształcie rury. Ściany zbudowane są z zer i jedynek.

System dwójkowy

Źródło: Pixabay, domena publiczna.

System dwójkowy pozycyjnysystem binarnySystem dwójkowy pozycyjny umożliwia komputerom przetwarzanie i przechowywanie informacji. W komputerach informacja jest zapisywana i przechowywana binarnie ze względu na charakter elektroniczny (dwustanowość)dwustanowośćcharakter elektroniczny (dwustanowość). Do zapisu liczb w systemie dwójkowym wykorzystywane są dwie cyfry 0 i 1, co umożliwia szybkie przetwarzanie informacji.

  1. Interaktywna treść merytorycznaInteraktywna treść merytoryczna

  2. MultimediumMultimedium

  3. Zestaw ćwiczeń interaktywnychZestaw ćwiczeń interaktywnych

  4. SłownikSłownik

  5. BibliografiaBibliografia

Aby zrozumieć poruszane w tym materiale zagadnienia, przypomnij sobie:
Twoje cele
  • Omówisz sposób zapisu liczb w dwójkowym systemie pozycyjnym.

  • Wykonasz podstawowe działania arytmetyczne z wykorzystaniem systemu dwójkowego.

  • Wyjaśnisz zastosowanie standardu ASCIIkod ASCIIASCII do przechowywania informacji o znakach w komputerze.

1

pozycyjnym systemie liczbowympozycyjny system liczbowypozycyjnym systemie liczbowym cyfry mają różne znaczenie w zależności od miejsca, jakie zajmują w liczbie. Inne systemy pozycyjne niż dziesiętny, z którego korzystamy na co dzień do różnych obliczeń np. w matematyce i fizyce, możemy spotkać w różnych naukach technicznych, a zwłaszcza w informatyce – są to systemy dwójkowy i szesnastkowy. Istnieją również inne systemy.

Ważne!

Określeń cyfraliczba nie należy ze sobą mylić. Cyfra to umowny znak służący do zapisywania liczb. Podobnie jak wyraz składa się z wielu liter, tak liczba może składać się z wielu cyfr.

Działanie komputera i jego podzespołów możemy opisać przy pomocy sekwencji liczb.

Porusz myszką – kursor wykonuje ruch na ekranie. Ruch myszką jest odczytywany przez komputer, który przekształca go na cyfrowe wartości i oblicza przemieszczenie kursora na ekranie. Następnie aktualizuje pozycję kursora i wyświetla go na ekranie.

Komputery, a właściwie procesoryprocesorprocesory (bo to one dokonują obliczeń), posługują się stanami logicznymistan logicznystanami logicznymi w celu przetwarzania informacji, które bardzo łatwo interpretować jako cyfry:

  • 0 - stan niski (brak prądu),

  • 1 - stan wysoki (jest prąd).

pozycyjnym systemie dwójkowymsystem binarnypozycyjnym systemie dwójkowym liczby są zapisywane jako ciągi cyfr 0 i 1. Każda pozycja 0 lub 1 w liczbie odpowiada potędze dwójki, zaczynając od najmniej znaczącej cyfry, której odpowiada potęga 2Indeks górny 0. Na przykład, liczba 1011 w pozycyjnym systemie dwójkowym odpowiada liczbie 11 w pozycyjnym systemie dziesiętnym:

1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 8 + 0 + 2 + 1 = 11

Oto kilka przykładów liczb zapisanych w systemie binarnym, kolejne wartości potęgi 2 oraz odpowiadające im liczby w systemie dziesiętnym:

Liczba binarna

liczba dziesiętna

000

0

0

0

0

001

0

0

1

1

010

0

2

0

2

011

0

2

1

3

100

4

0

0

4

101

4

0

1

5

110

4

2

0

6

111

4

2

1

7

Ciekawostka

Alfabet Morse'a, którego używa się w radiokomunikacji i w nawigacji morskiej, jest podobny do systemu binarnegosystem binarnysystemu binarnego. Do zapisu każdego znaku wykorzystuje sekwencję kropek i kresek. Jednym z najbardziej znanych jest sygnał alarmowy SOS (ang. save our ship,  save our souls).

Rj8CaAegdmNNf
Źródło: dostępny w internecie: wikimedia.commons.org, domena publiczna.

Sygnał składa się z trzech kropek, trzech kresek i znów trzech kropek.

R9bPeV8eEzsb7
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.

Podstawowe operacje arytmetyczne

Ważne!

Porównując operacje w systemie dwójkowym i dziesiętnym, możemy dostrzec pewne podobieństwa. W obu systemach jeśli suma jest dwucyfrowa (np. 8 + 3 = 11), to pod kreską zapisujemy tylko ostatnią cyfrę 1, a 1 przechodzi do następnej kolumny - dodamy ją do wyniku sumowania cyfr w następnej kolumnie. Jest to tzw. przeniesienie. Wykorzystujemy je, wykonując działania pisemnie (w słupku).

Linia 1. 8. Linia 2. plus 3. Linia 3. minus minus minus minus. Linia 4. 11.

Dodawanie liczb binarnych

O ile w przypadku systemu dziesiętnego sumowanie dwóch liczb, np. 11 i 13, nie sprawi nam kłopotu, o tyle w przypadku systemu binarnego dodanie do siebie 1011 oraz 1101 nie wydaje się już tak oczywiste.

Do wykonania działania możemy wykorzystać reguły, które stosujemy w przypadku dodawania pisemnego. Musimy jednak pamiętać, że podstawą tego systemu jest 2, nie 10. Ponadto wykorzystujemy tylko dwie cyfry: 0 i 1.

Zasady ich dodawania są następujące:

R1EcXvpQCO66h
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.
Ważne!

Kiedy w systemie dwójkowym dodajemy do siebie dwie liczby 1, uzyskujemy wynik 10. Dzieje się tak, ponieważ jedna z 1 jest dodawana do wartości następnej kolumny po lewej stronie. Podobnie robimy, sumując liczby w  systemie dziesiętnym – dodajemy odpowiednią wartość (przenosimy) do wartości cyfry bardziej znaczącej (po lewej stronie), gdy suma dwóch cyfr mniej znaczących przekracza 9.

Dodawanie liczb binarnych zaczynamy od dodawania najmniej znaczących bitów. Używamy opisanych zasad dodawania bitów, a dodatkowo:

  • jeśli suma wynosi 10, zapisujemy 0 i dodajemy 1 do następnej kolumny po lewej stronie;

  • jeśli suma wynosi 11, zapisujemy 1 i dodajemy 1 do następnej kolumny po lewej stronie – taka sytuacja może się wydarzyć, kiedy musimy dodać jeszcze przeniesioną cyfrę.

Przeanalizujemy przykład.

Oto dodawanie:

Linia 1. 1011 otwórz nawias okrągły to jest 11 w systemie dziesiętnym zamknij nawias okrągły. Linia 2. plus 1101 otwórz nawias okrągły to jest 13 w systemie dziesiętnym zamknij nawias okrągły. Linia 3. minus minus minus minus minus minus. Linia 4. 11000 otwórz nawias okrągły to jest 24 średnik w systemie dziesiętnym zamknij nawias okrągły.

Mnożenie liczb binarnych

Mnożnik zapisujemy pod mnożną, a potem mnożąc każdą cyfrę przez każdą, wyniki częściowe zapisujemy podobnie jak w pozycyjnym systemie dziesiętnym. Ostatecznie sumujemy otrzymane liczby.

Przypomnijmy sobie sposób mnożenia dwóch liczb naturalnych większych od 10 - widzimy tu wyniki częściowe (48 i 12), a potem ich sumę, czyli wynik mnożenia:

Linia 1. 12. Linia 2. x 14. Linia 3. minus minus minus minus. Linia 4. 48. Linia 5. 12. Linia 6. minus minus minus minus. Linia 7. 168.

Zasady mnożenia bitów w liczbach binarnych są następujące:

RnicGdolNVoHC
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.
Ważne!

Wyrównanie liczb: Zaczynamy od napisania dwóch liczb binarnych jedna pod drugą tak, aby ich bity były wyrównane od prawej do lewej. Najmniej znaczące bity znajdują się na prawym końcu, a najbardziej znaczące bity na lewym końcu.

Rozpoczynamy mnożenie bitów: Zaczynając od prawej kolumny dolnej liczby, mnożymy każdy bit przez każdy bit górnej liczby. Zapisujemy wynik pod linią, kolejne iloczyny zaczynamy zapisywać pod bitem, przez który mnożymy.

Dodajemy wyniki: Po pomnożeniu każdego bitu dolnej liczby przez górną liczbę dodajemy wszystkie wyniki w poszczególnych kolumnach. Pamiętajmy o tym, że dodawanie w systemie binarnym może wymagać przeniesienia, jeżeli suma bitów w jednej kolumnie przekroczy 1.

Po dodaniu wszystkich wyników, wynik pod poziomą kreską to iloczyn dwóch liczb binarnych.

Przeanalizujemy przykład.

Oto operacja mnożenia:

Linia 1. 1011 otwórz nawias okrągły to jest 11 w systemie dziesiętnym minus mnożna zamknij nawias okrągły. Linia 2. x 1101 otwórz nawias okrągły to jest 13 w systemie dziesiętnym minus mnożnik zamknij nawias okrągły. Linia 3. minus minus minus minus minus minus minus minus minus minus. Linia 4. 1011 otwórz nawias okrągły to jest wynik mnożenia przez pierwszy bit od prawej minus 1 zamknij nawias okrągły. Linia 5. 0000 otwórz nawias okrągły to jest wynik mnożenia przez drugi bit od prawej minus 0 przecinek przesunięty o jedną pozycję w lewo zamknij nawias okrągły. Linia 6. 1011 otwórz nawias okrągły to jest wynik mnożenia przez trzeci bit od prawej minus 1 przecinek przesunięty o dwie pozycje w lewo zamknij nawias okrągły. Linia 7. 1011 otwórz nawias okrągły to jest wynik mnożenia przez czwarty bit od prawej minus 1 przecinek przesunięty o trzy pozycje w lewo zamknij nawias okrągły. Linia 8. minus minus minus minus minus minus minus minus minus minus. Linia 9. 10001111 otwórz nawias okrągły to jest 143 w systemie dziesiętnym przecinek co jest wynikiem operacji 11 asterysk 13 zamknij nawias okrągły.

Odejmowanie liczb binarnych

Odejmowanie zapisujemy analogicznie jak dodawanie metodą pisemną. Zaczynamy od najmniej znaczących cyfr.

Zapoznaj się z ilustracją przedstawiającą zasady odejmowania w dwójkowym systemie pozycyjnym:

RMjSrq5Xxn3KS
Źródło: GroMar Sp. z o.o., licencja: CC BY-SA 3.0.
Polecenie 1
R160Elh3ISNbu

Bity i bajty – system binarny w komputerach

Zera i jedynki użyte w zapisie binarnym nazywane są bitami informacji i reprezentują stany logicznestan logicznystany logiczne. 8 bitów to 1 bajt. Jeden bajt pozwala na zapis 256 różnych wartości. Bajty i ich wielokrotności są używane do oznaczenia wielkości pamięci w urządzeniach komputerowych. W takich jednostkach podajemy pojemność pamięci operacyjnej RAMpamięć operacyjna RAMpamięci operacyjnej RAM w komputerze oraz wielkość dysków twardych i innych nośników danych.

Nazwa

Liczba wyrażona w wielokrotności jednostki

Liczba bajtów

bajt (B)

8 bitów

1

kilobajt (KB)

1024 bajty

1024

megabajt (MB)

1024 kilobajty

1024 * 1024

gigabajt (GB)

1024 megabajty

1024 * 1024 * 1024

ASCII – standard kodowania znaków

Znaki, takie jak litery, cyfry i symbole specjalne są reprezentowane w komputerze przy pomocy liczb. Każdemu znakowi przypisana jest odpowiadająca mu wartość. Ten sposób przypisania znaku do liczby nazywamy kodowaniem. Najczęściej używanym systemem kodowania jest kod ASCIIkod ASCIIkod ASCII (ang. American Standard Code for Information Interchange), który jest standardowym systemem kodowania znaków w komputerach (w ASCII znak wykorzystuje 1 bajt). Kody dziesiętne od 0 do 31 są to tzw. kody sterujące, które niosą pewne informacje dla komputera, a nie widać ich na monitorze ani na wydruku.

R2dR8OEBvt5O51
Źródło: Wikimedia Commons, domena publiczna.

Kod ASCIIKod ASCIIKod ASCII reprezentuje każdy znak jako pewną liczbę. Na przykład, litera „A” jest kodowana jako 100 0001 (w systemie binarnym), co odpowiada liczbie 65 w systemie dziesiętnym. Każdy znak w kodzie ASCII jest przypisany do unikalnej wartości liczbowej, co umożliwia komputerom przetwarzanie i wymianę informacji tekstowej. Kod ASCII jest nadal używany w wielu systemach, ale istnieją również inne systemy kodowania, takie jak UnicodeUnicodeUnicode, które pozwalają na reprezentację większej liczby znaków i symboli z różnych języków i kultur.

Notatnik

R1OlTbG8cTajX
Miejsce na Twoje notatki: (Uzupełnij).
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
2

Prezentacja multimedialna

R1Fh4dlvrKj3b

Cyfry obecne od IX wieku

Codex Vigilanus

Zbiór historycznych dokumentów, m. in. wzmianki i reprezentacje cyfr Arabskich.

RdWi7uOX4rS2N
Jeden z najwcześniejszych przykładów zapisu cyfr arabskich w źródłach Zachodu.
Źródło: dostępny w internecie: en.wikipedia.org [dostęp 23.04.2024], domena publiczna.

Historia dziesiętnego systemu liczbowego

R1EZPGQqWVaYd
Film przedstawia dziesiętny system liczbowy

Wagi cyfr w liczbie

3856 = 3 × 1000 + 8 × 100 + 5 × 10 + 6 × 1

RzohyZrkZEp7E
Film przedstawia dziesiętny system liczbowy

Przechowywanie informacji w komputerze

RxHZVlIKh5t8J
Animacja przedstawia system binarny.

Podstawy systemu binarnego

RaL3d70btHXE0
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Rcwp6Lsu0WyYD
Film przedstawia system binarny.

Dodawanie dwóch liczb w pozycyjnym systemie dwójkowym

R12MGG4OMO1P1
Film przedstawia dodawanie liczb w systemie dwójkowym.
R10wo5JUH4xKM

Alfabet Morse'a

Przykład wykorzystania dwóch znaków do zapisu informacji

1,1
R1RW0bUSuBPAQ
Źródło: domena publiczna.
R15MmpfPDgzBb
Źródło: Adam Jurkiewicz, licencja CC‑BY.
R1aLPdkPSyJyV

Gra w życie

R3EUAqvbzbPtc
Źródło: domena publiczna.

Tor wyścigowy – układ stworzony przez Simpsons contributor

Gra toczy się w kolejnych rundach, zgodnie z następującymi zasadami:

  • Nadmiar populacji: Jeżeli żywa komórka ma więcej niż trzech żywych sąsiadów, umiera (przechodzi w stan „martwy”) z powodu zbyt dużego zaludnienia.

  • Samotność: Jeżeli żywa komórka ma mniej niż dwóch żywych sąsiadów, umiera z powodu samotności.

  • Stabilność: Jeżeli żywa komórka ma dwa lub trzy żywych sąsiadów, przetrwa do następnej generacji.

  • Reprodukcja: Jeżeli martwa komórka ma dokładnie trzech żywych sąsiadów, staje się żywa.

RFaVbgw55ZZP8

Program w Blockly
Liczba cyfr 1 w liczbie zapisanej w systemie binarnym

RbshrWR0ju5IQ
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

W bloku instrukcji warunkowej sprawdzamy, czy cyfra jest większa od jedynki - wtedy przerywamy program.

R1eYcLLDPq7xK

ASCII art – sztuka znaków

R1L1DoFkr6E32
Film nawiązujący do treści materiału
RZoeXHtY59lKd

Biblioteka art w Pythonie

R1IYKco24ha52
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Głośność lektora
Głośność muzyki

Indeks górny Źródło: Adam Jurkiewicz, licencja: CC BY 3.0. Indeks górny koniec

Polecenie 2
RSyAwxPAdtwOL
Polecenie 3
RbycK9aLoT5K2
Polecenie 4
RZL96oAOyj3g1
3

Zestaw ćwiczeń interaktywnych

RJH9KrBmNwifD1
Ćwiczenie 1
Jeśli kropka to bit o wartości 0, a kreska to bit o wartości 1 to jak będzie wyglądał kod binarny znanego sygnału wezwania pomocy SOS (trzy kropki, trzy kreski, trzy kropki)? Zaznacz poprawną odpowiedź. Możliwe odpowiedzi: 1. 101010101, 2. 000111000, 3. 111000111
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RhWOG6HsEIEzG1
Ćwiczenie 2
Uporządkuj rosnąco liczby w systemie dwójkowym. Elementy do uszeregowania: 1. 000101, 2. 001000, 3. 001010, 4. 000110, 5. 001001, 6. 001011, 7. 000111
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RDPKstif0MYxs1
Ćwiczenie 3
Połącz w pary odpowiednie jednostki.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RyeYQP97kmn0T1
Ćwiczenie 4
Uzupełnij poniższe zdanie. Kodowanie znaków jest 1. niemożliwe, 2. trudne, 3. ważne, 4. nieważne, 5. pozwala, 6. łatwe, 1. niemożliwe, 2. trudne, 3. ważne, 4. nieważne, 5. pozwala, 6. łatwe na przechowywanie i wymianę informacji tekstowej dla komputera.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
R1GcSw04rhz1d2
Ćwiczenie 5
Uzupełnij krzyżówkę, odczytaj hasło.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
21
Ćwiczenie 6

Dana jest liczba zapisana w systemie dwójkowym. W języku Scratch zapisz program, który obliczy liczbę cyfr 0 w liczbie zapisanej w pozycyjnym systemie dwójkowym. Program powinien wypisać wynik na ekranie.

RUFRBX13U832U
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
31
Ćwiczenie 7

W Blockly wykonaj program, który obliczy liczbę cyfr 1 w liczbie w pozycyjnym systemie dwójkowym i wypisze na ekranie, informację o obliczonej liczbie, np.:

R1F29zTaPHgph
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Program powinien również sprawdzać, czy wprowadzona liczba to liczba w systemie binarnym, czyli czy żadna z jej cyfr nie jest większa od 1. Jeśli liczba nie jest zapisana w systemie binarnym, program powinien wyświetlić komunikat błędna cyfra i przerwać działanie programu.

RrY6AqqRgS1NA
Ćwiczenie alternatywne znajduje się w trybie dostępności.
Źródło: GroMar Sp. z o.o., licencja: CC BY 3.0.
31
Ćwiczenie 8

Blockly generuje automatycznie odpowiednik kodu w języku Python, jednak często zawiera on zbędne elementy. W przypadku kodu z ćwiczenia 7 możemy usunąć część instrukcji.

Kod z którego usunęliśmy zbędne instrukcje:

Linia 1. przerwij znak równości False. Linia 2. ile podkreślnik cyfr podkreślnik jeden znak równości 0. Linia 3. liczba znak równości float otwórz nawias okrągły input otwórz nawias okrągły apostrof Podaj liczbę w systemie binarnym apostrof zamknij nawias okrągły zamknij nawias okrągły. Linia 4. while liczba zamknij nawias ostrokątny 0 dwukropek. Linia 5. cyfra znak równości liczba procent 10. Linia 6. if cyfra zamknij nawias ostrokątny 1 dwukropek. Linia 7. przerwij znak równości True. Linia 8. break. Linia 9. elif cyfra znak równości znak równości 1 dwukropek. Linia 10. ile podkreślnik cyfr podkreślnik jeden znak równości ile podkreślnik cyfr podkreślnik jeden plus 1. Linia 11. liczba znak równości liczba prawy ukośnik prawy ukośnik 10. Linia 12. if przerwij znak równości znak równości True dwukropek. Linia 13. print otwórz nawias okrągły apostrof błędna cyfra apostrof zamknij nawias okrągły. Linia 14. else dwukropek. Linia 15. print otwórz nawias okrągły apostrof Liczba cyfr 1 dwukropek apostrof plus str otwórz nawias okrągły ile podkreślnik cyfr podkreślnik jeden zamknij nawias okrągły zamknij nawias okrągły.
RvRvLsw63YcT41
4

Słownik

kod ASCII
kod ASCII

standardowy system kodowania znaków, który jest używany w komputerach i urządzeniach elektronicznych; podstawowy kod ASCII składa się z 128 znaków, w tym liter alfabetu łacińskiego, cyfr, znaków interpunkcyjnych i kontrolnych; jest używany do przechowywania i przetwarzania tekstów w komputerach i jest uważany za podstawę wielu innych systemów kodowania znaków, takich jak UTF‑8 i Unicode

pamięć operacyjna RAM
pamięć operacyjna RAM

(ang. Random Access Memory) rodzaj pamięci komputerowej, która służy do przechowywania danych tymczasowych, na których operuje procesor; jest niezbędna do uruchamiania programów, szybkiego odczytu i zapisu informacji, co przyspiesza działanie komputera

pozycyjny system liczbowy
pozycyjny system liczbowy

system liczbowy, w którym wartość cyfry zależy od pozycji, na której jest zapisana, np. w dziesiętnym systemie w liczbie 123 cyfra 2 oznacza liczbę dziesiątek, a więc wartość 20

procesor
procesor

elektroniczny układ scalony odpowiedzialny za wykonywanie instrukcji i obliczeń w komputerze; wykonuje podstawowe operacje (dodawanie, odejmowanie, mnożenie i dzielenie) oraz zarządza przepływem danych i instrukcji wewnątrz komputera; procesory składają się z wielu mikroprocesorów, zwanych rdzeniami, które są zdolne do wykonywania wielu instrukcji jednocześnie

stan logiczny
stan logiczny

elektroniczna reprezentacja Prawdy lub Fałszu, których odpowiednikiem są 1 lub 0 w układach scalonych komputerów

system binarny
system binarny

inaczej system dwójkowy; system liczbowy oparty na dwóch cyfrach: 0 i 1; jest to podstawowy system wykorzystywany w elektronice cyfrowej oraz w komputerach

Unicode
Unicode

(ang. Unicode Standard) - standard kodowania znaków, który przypisuje każdemu znakowi (literze, cyfrze, symbolowi) unikalny numer; jest powszechnie używany w różnych systemach informatycznych, aby zapewnić spójność i jednoznaczność kodowania znaków na całym świecie

dwustanowość
dwustanowość

w elektronice cyfrowej, jednostkach pamięci i obliczeniach komputerowych, informacje są przechowywane i przetwarzane za pomocą dwóch stanów logicznych: 0 to brak sygnału, 1 oznacza obecność sygnału, np. w transmisji danych

5

Bibliografia

  • Dokumentacja języka Python, docs.python.org, dostęp: 19.04.2024.

  • Gra w życie, pl.wikipedia.org, dostęp: 19.04.2024.

  • Jurkiewicz A., Python 3 - Projekty dla początkujących i pasjonatów, Helion, Gliwice 2021.

  • Petzold Ch., Kod. Ukryty język komputerów, Helion, Gliwice 2021.

  • Sysło M., Algorytmy, Helion, Gliwice 2016.

  • Wałaszek J., Operacje arytmetyczne w systemie dwójkowym, eduinf.waw.pl, dostęp: 19.04.2024.