Urządzenia Techniki Komputerowej
System binarny
Opracowanie: Mateusz Tobor
System binarny
Krótko i na temat
Czyli po prostu system zapisu liczb z podstawą liczby 2.
Prosty przykład:
11112 → (1×23 + 1×22 + 1×21 + 1×20)10 → (8+4+2+1)10 → 1510
10012 → (1×23 + 0×22 + 0×21 + 1×20)10 → (8+0+0+1)10 → 910
11102 → (1×23 + 1×22 + 1×21 + 0×20)10 → (8+4+2+0)10 → 1410
System binarny
Wprowadzenie
System binarny, zwany też systemem dwójkowym, jest systemem pozycyjnym, w którym używa się tylko dwóch cyfr: 0 i 1.
Każda cyfra w liczbie binarnej ma przypisaną wagę będącą potęgą liczby 2 – od najmniej znaczącej (2⁰) do najbardziej znaczącej.
System binarny
Zastosowanie
💡 Dlaczego tylko 0 i 1?
Elektronika cyfrowa opiera się na stanach włączony/wyłączony.
Dzięki temu system binarny jest prosty, niezawodny i łatwy do implementacji w sprzęcie komputerowym.
System binarny
Definicja
Prezentacja cyfry w dowolnym systemie liczbowym
A × 2B
A – wartość cyfry w tej pozycji
B – indeks pozycji cyfry licząc od prawej strony (najmniej znacząca = 0)
Przykład dla cyfry 110:
(1 × 100)10 = (1 × 20)2
System binarny
Definicja
Prezentacja liczby w dowolnym systemie liczbowym
N = An × 2n + An-1 × 2n-1 + ⋯ + A1 × 21 + A0 × 20
,gdzie:
N – liczba w systemie dziesiętnym
Ai – cyfra na pozycji iii, spełniająca 0≤Ai<Y0 \le A_i < Y0≤Ai<Y
i = 0 … n – indeks pozycji, liczony od prawej strony (najmniej znacząca cyfra = 0),
i ∈ (0 ; +∞)
System binarny
Przekształcanie liczby z systemu dziesiątkowego
na system binarny
Przykład pierwszy: 1410
14 ÷ 2 = 7 reszta 0
7 ÷ 2 = 3 reszta 1
3 ÷ 2 = 1 reszta 1
1 ÷ 2 = 0 reszta 1
}
11102
→
System binarny
Przekształcanie liczby z systemu dziesiątkowego
na system binarny
Przykład drugi: 20110
201 ÷ 2 = 100 reszta 1
100 ÷ 2 = 50 reszta 0
50 ÷ 2 = 25 reszta 0
25 ÷ 2 = 12 reszta 1
12 ÷ 2 = 6 reszta 0
6 ÷ 2 = 3 reszta 0
3 ÷ 2 = 1 reszta 1
1 ÷ 2 = 0 reszta 1
110010012
System binarny
Przekształcanie liczby z systemu dziesiątkowego
na system binarny
Zadanie 1.
System binarny
Przekształcanie liczby z systemu binarnego
na system dziesiętny
Przykład:
1 1 0 0 1 12
25 24 23 22 21 20
25 + 24 + 0 + 0 + 21 + 20 = 5110
System binarny
Przekształcanie liczby z systemu binarnego
na system dziesiętny
Przykład:
1100112 = 1×25 + 1×24 + 0×23 + 0×22 + 1×21 + 1×20
= 1×32 + 1×16 + 0×8 + 0×4 + 1×2 + 1×1
= 32 + 16 + 0 + 0 + 2 + 1
= 32 + 16 + 2 + 1
= 5110
System binarny
Przekształcanie liczby z systemu binarnego
na system dziesiętny
Zadanie 2.
System binarny
Przekształcanie liczby z systemu binarnego
na system dziesiętny
Zadanie 2.
System binarny
Parzystość liczby w systemie binarnym
Parzystość liczby w systemie binarnym zależy od ostatniej cyfry.
11112 → (1×23 + 1×22 + 1×21 + 1×20)10 → (8+4+2+1)10 → 1510
11102 → (1×23 + 1×22 + 1×21 + 0×20)10 → (8+4+2+0)10 → 1410
Zapisywanie liczb ujemnych�Jakie są sposoby?
Zapisywanie liczb ujemnych�SM: Znak i wartość bezwzględna (Sign-and-Magnitude)
Zapisywanie liczb ujemnych�SM: Znak i wartość bezwzględna (Sign-and-Magnitude)
Wady:
Zapisywanie liczb ujemnych�SM: Znak i wartość bezwzględna (Sign-and-Magnitude)
Wady:
Zapisywanie liczb ujemnych�SM: Znak i wartość bezwzględna (Sign-and-Magnitude)
Dlatego w praktyce SM to głównie teoria i historia.
Zapisywanie liczb ujemnych�ZU1: Uzupełnienie do jedynki (One’s Complement)
Zapisywanie liczb ujemnych�ZU1: Uzupełnienie do jedynki (One’s Complement)
Wady:
Zapisywanie liczb ujemnych�ZU2: Uzupełnienie do dwójki (Tow’s Complement)
Liczby dodatnie → zapisuje się normalnie w binarnym, MSB = 0.
Liczby ujemne → zapisuje się jako:
Dodawanie i odejmowanie:
Odejmowanie = dodanie liczby ujemnej – dlatego to takie wygodne.
Zapisywanie liczb ujemnych�Pytanie
Zapisywanie liczb ujemnych�Normalizacja zapisu
ZM - Znak Moduł, ZU1 - Uzupełnienie do jedynki, ZU2 - Uzupełnienie do dwójki
Przykładowo:
1000101101ZM → 1111010010ZU1
→ 1111010011ZU2
Zapisywanie liczb ujemnych�Powtórka wiadomości
Zadanie.
Zapisywanie liczb ujemnych�Powtórka wiadomości
Zadanie.
Działania na liczbach binarnych�Dodawanie
1
1100101
+ 110
–––––––––
1101011
Działania na liczbach binarnych�Dodawanie
111
1100101
+ 111
–––––––––
1101100
Działania na liczbach binarnych�Dodawanie
Zadanie.
A=3110, B=1210
Przepełnienie
ZU1 → ZU2: OVERFLOW
Co w momencie, gdy do liczby
11111112 dodamy 12 ?
Działania na liczbach binarnych�Odejmowanie
1100101
- 111
–––––––––
???????
Działania na liczbach binarnych�Mnożenie
Ustawiamy obie liczby jedna pod drugą w taki sposób, aby ich bity o tej samej znaczności znalazły się w jednej kolumnie (wygodniej jest dłuższą zapisać nad krótszą).
Następnie stosujemy zwykłe mnożenie „pisemne”:
Działania na liczbach binarnych�Mnożenie
Przykład: 101 * 1011 = ?
Działania na liczbach binarnych�Mnożenie
Przykład: 1011 * 101 = ?
Działania na liczbach binarnych�Mnożenie
Pomnożyć binarnie liczbę 11012 przez 10112.
Działania na liczbach binarnych�Dzielenie
Operację dzielenia binarnego można przeprowadzić ręcznie korzystając z metody „pisemnej” tak, jak to robimy w systemie dziesiętnym.
Kiedy jednak chcemy podzielić dwie liczby binarne w programie komputerowym, należy:
Działania na liczbach binarnych�Dzielenie
Przykład: 1010 : 11 = ?
ZM,ZU1,ZU2�Działania
Zadanie 1.
Pozostaw liczbę ZU2 na tablicy.
ZM,ZU1,ZU2�Działania
Zadanie 2.
Pozostaw liczbę ZU2 na tablicy.
ZM,ZU1,ZU2�Działania
Zadanie 3.
System binarny - liczby zmiennoprzecinkowe�Reprezentacja stałopozycyjna
System binarny - liczby zmiennoprzecinkowe�Reprezentacja stałopozycyjna
System binarny - liczby zmiennoprzecinkowe�Reprezentacja zmiennopozycyjna
wartość = znak × mantysa × 2wykładnik
System binarny - liczby zmiennoprzecinkowe�Struktura IEEE 754 (32-bit float):
Liczba 13.2510
Część całkowita: 13₁₀ = 1101₂�Część ułamkowa 0.25₁₀ = 0.01₂
1101.01₂ = 1.10101₂ × 23��
System binarny - liczby zmiennoprzecinkowe�Struktura IEEE 754 32-bit float:
3. Przesunięcie cechy (dodanie biasu)
E = e + 127 = 3 + 127 = 130
4. Mantysa (23bity)
mantysa = 101010000000000000000002
System binarny - liczby zmiennoprzecinkowe�Struktura IEEE 754 32-bit float:
Krok 5: Znak
Krok 6: Składanie 32-bit IEEE 754
0 10000010 10101000000000000000000
System binarny - liczby zmiennoprzecinkowe�Struktura IEEE 754 (32-bit float):
Ukryta “jedynka”
W liczbach zmiennoprzecinkowych normalnych (normalized numbers) w standardzie IEEE 754 zawsze jest wiodąca „1” przed przecinkiem w mantysie.
Dlaczego tak się robi?
System binarny - liczby zmiennoprzecinkowe�Struktura IEEE 754 (32-bit float):
A co z zerem?
Czyli normalna liczba nigdy nie ma zera przed przecinkiem, bo zawsze tam jest 1.
System binarny - liczby zmiennoprzecinkowe
Czym jest bias?
Bias to stała liczba dodawana do rzeczywistego wykładnika liczby zmiennoprzecinkowej, aby uzyskać dodatnią reprezentację wykładnika w pamięci.
System binarny - liczby zmiennoprzecinkowe
Standardy zapisu liczb
IEEE 754 – arytmetyka zmiennoprzecinkowa:
IEE 754r:
System binarny - liczby zmiennoprzecinkowe
Standardy zapisu liczb
Jeśli chodzi tylko o reprezentację liczb zmiennoprzecinkowych w komputerze, to głównie IEEE 754 i jego rozszerzenia (754r, half/double/quad).�
Inne standardy IEEE dotyczą sprzętu, komunikacji czy języków sprzętowych, nie bezpośrednio reprezentacji liczb.
System binarny
Metoda Hornera
Metoda Hornera to sposób obliczania wartości wielomianu w prosty i szybki sposób.
W przypadku systemów liczbowych – każdą liczbę w systemie binarnym traktujemy jak taki wielomian, gdzie podstawiamy podstawę systemu (tu: 2).
System binarny
Metoda Hornera
Weźmy liczbę binarną:
10112
System binarny
Metoda Hornera - jak to zrobić
Metoda Hornera polega na tym, że zamiast liczyć potęgi 2 i je dodawać, robimy to po kolei:
Bierzemy kolejne cyfry liczby i robimy taki schemat:
System binarny
Zadanie domowe
Zadanie 1. Przekształć następujące liczby z systemu dziesiętnego na system binarny (dwójkowy):
Zadanie 2. Przekształć następujące liczby z systemu binarnego na system dziesiątkowy: