06_zap_inf_w_komp.pdf

(46 KB) Pobierz
- 1 -
6.
ZAPISYWANIE INFORMACJI W KOMPUTERZE
PoniewaŜ jedynymi wielkościami jakimi moŜe operować komputer są liczby, to wszelkie
informacje wprowadzanie do komputera muszą być w nim zapisane w postaci liczb
przedstawionych w systemie liczbowym binarnym.
Program wczytujący dowolną informację przekształca ją w ciąg liczb systemu dwójkowego i
liczby te zapisuje w pamięci komputera.
Informacja przesyłana do komputera składa się ze znaków alfanumerycznych (słów złoŜonych
z liter, liczb i znaków dodatkowych).
Aby zakodować informację wystarczy kaŜdej literze, cyfrze i znakowi dodatkowemu
przyporządkować jednoznacznie liczbę dziesiętna.
Taka operacja jest nazywana kodowaniem.
Przykładem innego kodowania jest np. alfabet Morse’a.
Operację odwrotną, odczytywania przez człowieka informacji przesłanej z komputera,
nazywamy dekodowaniem.
Kod ASCII
Stworzony został specjalny zestaw kodów będący standardem kodowania informacji dla celów
jej przetwarzania przez komputery budowane przez dowolnego producenta (kod ASCII).
Gdyby tak się nie stało informacje przygotowywane dla jednego komputera mogłyby być
zupełnie nieczytelne w komputerze innego producenta.
ASCII to skrót od
American Standard Code for Information Interchange
czyli
Amerykański Kod Standardowy dla Wymiany Informacji
Najbardziej rozpowszechniony standard reprezentowania znaków alfanumerycznych w
komputerze.
Specjalny
zestaw
kodów
będący
standardem
kodowania
informacji
dla
celów
jej
przetwarzania przez komputery budowane przez dowolnego producenta.
Inne standardy
standard
ANSI
standard
EBCDIC
(Extended Binary-Coded-Decimal Interchange Code)
Kod ASCII przyporządkowuje kaŜdemu znakowi alfanumerycznemu liczbę z przedziału od 0
do 255, odpowiadającą jego kolejności w uporządkowanym zbiorze znaków, naleŜących do
tego standardu.
Pierwsze 128 znaków kodu ASCII to tzw. kod podstawowy .
Znaki od 129 do 256 to kod rozszerzony określa wszystkie 256 znaków.
- 2 -
Standardowy kod ASCII
0
- 31
kody sterujące pracą komputera (kody kontrolne dla drukarek i ekranu)
32
- 47
znaki dodatkowe
48
- 57
cyfry 0...9
58
- 64
znaki dodatkowe
65
- 90
duŜe litery A...Z
91
- 96
znaki dodatkowe
97
- 122 małe litery a...z
kod podstawowy
123 - 127 znaki dodatkowe
128 - 255 znaki graficzne i znaki narodowe itd. - kod rozszerzony
6.1 KODOWANIE LICZB, LICZBY CAŁKOWITE, STAŁOPOZYCYJNA
REPREZENTACJA LICZB
Podstawowe kody:
-
zapis znak-moduł (ZM),
-
zapis U1,
-
zapis U2.
Kody te nazywane są stałopozycyjnymi (ang. integer) – przecinek umieszczony jest na stałej
pozycji.
Zapis znak-moduł (ZM) (ang. sign-magnitude )
Najbardziej znaczący bit słowa jest bitem znaku.
0 - liczba dodatnia, 1 - liczba ujemna.
Liczba binarna w zapisie ZM (słowo 16-bitowe)
bit znaku
15 bitów - moduł liczby
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
16 bitów
87
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
-103
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
W zapisie ZM występują dwie reprezentacje zera
000000...00 lub 100000...00
817094690.050.png 817094690.061.png 817094690.062.png 817094690.063.png 817094690.001.png 817094690.002.png 817094690.003.png 817094690.004.png 817094690.005.png 817094690.006.png 817094690.007.png 817094690.008.png 817094690.009.png 817094690.010.png 817094690.011.png 817094690.012.png 817094690.013.png 817094690.014.png 817094690.015.png 817094690.016.png 817094690.017.png 817094690.018.png 817094690.019.png 817094690.020.png 817094690.021.png 817094690.022.png 817094690.023.png 817094690.024.png 817094690.025.png 817094690.026.png 817094690.027.png 817094690.028.png 817094690.029.png 817094690.030.png 817094690.031.png 817094690.032.png 817094690.033.png 817094690.034.png 817094690.035.png 817094690.036.png 817094690.037.png 817094690.038.png 817094690.039.png 817094690.040.png 817094690.041.png 817094690.042.png 817094690.043.png 817094690.044.png 817094690.045.png 817094690.046.png
- 3 -
Zapis uzupełnie ń do 1 (U1) (ang. 1s complement )
Najbardziej znaczący bit jest takŜe bitem znaku.
0 - liczba dodatnia, 1 - liczba ujemna.
Jeśli bit znaku jest 0 (liczba dodatnia), to dalsze bity reprezentują liczbę dodatnią w NKB
(naturalny kod binarny).
Jeśli bit znaku jest 1 (liczba ujemna), to dalsze bity reprezentują moduł liczby ujemnej, w taki
sposób, Ŝe zanegowane ich wartości odpowiadają modułowi tej liczby w kodzie NKB.
Zapis U1 dla liczb dodatnich jest taki sam jak zapis ZM .
W zapisie U1 występują takŜe dwie reprezentacje zera
000000...00 i 111111...11
Sposób przeliczenia liczby ujemnej w zapisie ZM na zapis U1.
Zanegować bity oznaczające moduł liczby (bit znaku pozostaje 1).
Np. dla liczb 8-bitowych
zapis NKB
11010110
(dziesiętnie - 86)
zapis U1
10101001
Zapis uzupełnie ń do 2 (U2) (ang. 2s complement )
Zapis ten róŜni się od U1 tylko dla liczb ujemnych.
Moduł liczby ujemnej zapisany w kodzie U2 jest obliczany w taki sposób, Ŝe do zanegowanych
pozycji słowa (odpowiadających modułowi liczby) jest arytmetycznie dodawana jedynka i
dopiero tak utworzone słowo odpowiada w kodzie U2 modułowi tej liczby.
Zapis U2 dla liczb dodatnich jest taki sam jak zapis ZM i U1 .
W zapisie U2 występuje jedna reprezentacja zera:
000000...00
Sposób przeliczenia liczby ujemnej w zapisie ZM na zapis U2.
Zanegować bity oznaczające moduł liczby i dodać 1 (bit znaku pozostaje 1).
Np. dla liczb 8-bitowych
zapis NKB
11010110
(dziesiętnie - 86)
zapis U2
10101010
(10101001+00000001)
 
- 4 -
Do kodowania liczb stosuje się jeszcze dwa dodatkowe zapisy, a mianowicie:
-
zapis polaryzowany (ang. bias ),
-
zapis BCD.
Zapis polaryzowany (BIAS)
Zapis ten przedstawia liczby w taki sposób, Ŝe 0 jest reprezentowane przez n -bitowe słowo
100000...00, a więc przez liczbę
2 -
n
1
kodu NKB. Wszystkie inne liczby A są przedstawiane
na n pozycjach jako binarne wartości liczby
n
-
1
2
+
A
.
Przykład dla licz 8-bitowych ( n = 8).
7
2
+
A
Liczba dziesiętna A
Zapis polaryzowany (liczba binarna
)
( )
(
) 10
7
2
128
0
=
=
10000000
10
(
) 10
(
) 10
7
2
+
5
133
5
=
=
10000101
(
) 10
(
) 10
7
2
+
85
213
85
=
=
11010101
(
) 10
(
) 10
7
66
2
-
62
-62
=
=
01000010
-
127
£
A
£
127
W tym przypadku dla liczb 8-bitowych zakresem jest:
.
Zapis BCD
W zapisie tym oprócz bitu znaku występuje parzysta liczba czwórek bitów (tzw. tetrady).
Jedna tetrada odpowiada jednej cyfrze w zapisie dziesiętnym, czyli np. dla liczby dziesiętnej
trzycyfrowej (3 pozycje) występują 3 tetrady.
KaŜda tetrada moŜe być binarną reprezentacją cyfr od 0 do 9 (czyli od 0000 do 1001
binarnie).
Niedopuszczalne są np. wartości tetrad 1100 lub 1110, gdyŜ dziesiętnie odpowiadają one
liczbą 12 i 14.
Przykładowo dla liczb dziesiętnych trzycyfrowych zapis BCD będzie 13-bitowy (3 tetrady=12
bitów i jeden bit znaku).
Liczba dziesiętna
Zapis BCD
+ 125
0 0001 0010 0101
- 698
1 0110 1001 1000
Reprezentacja liczb w róŜnych zapisach (liczby 8-bitowe wraz z bitem znaku).
Dla kodu BCD przedstawiono zapis 12-bitowy wraz z 13 bitem znaku,
tj. dziesiętne liczby trzycyfrowe (3 tetrady).
- 5 -
Liczba
ZM
U1
U2
BIAS
BCD
-127
-126
-125
4
-4
-3
-2
-1
0
0
1
2
3
4
4
+125
+126
+127
11111111
11111110
11111101
4
10000100
10000011
10000010
10000001
10000000
00000000
00000001
00000010
00000011
00000100
4
01111101
01111110
01111111
10000000
10000001
10000010
4
11111011
11111100
11111101
11111110
11111111
00000000
00000001
00000010
00000011
00000100
4
01111101
01111110
01111111
10000001
10000010
10000011
4
11111100
11111101
11111110
11111111
00000000
00000000
00000001
00000010
00000011
00000100
4
01111101
01111110
01111111
00000001
00000010
00000011
4
01111100
01111101
01111110
01111111
10000000
10000000
10000001
10000010
10000011
10000100
4
11111101
11111110
11111111
1 0001 0010 0111
1 0001 0010 0110
1 0001 0010 0101
4
1 0000 0000 0100
1 0000 0000 0011
1 0000 0000 0010
1 0000 0000 0001
1 0000 0000 0000
0 0000 0000 0000
0 0000 0000 0001
0 0000 0000 0010
0 0000 0000 0011
0 0000 0000 0100
4
0 0001 0010 0101
0 0001 0010 0110
0 0001 0010 0111
6.2 ARYTMETYKA STAŁOPOZYCYJNA
Najczęściej do reprezentacji liczb całkowitych w procesorach komputerów są stosowane kody
ZM, U1, U2 oraz BCD. PoniŜej przedstawione zostaną dwa podstawowe działania
arytmetyczne dla ZM, U1 i U2. Tymi działaniami będzie dodawanie i odejmowanie.
Dodawanie i odejmowanie
Rozpatrzono dwa przypadki:
1) dodawanie dwóch liczb dodatnich,
2) dodawanie dwóch liczb o przeciwnych znakach.
Przypadek 1.
Dla zapisów ZM, U1, U2 reprezentacja liczb dodatnich jest taka sama.
Operacja dodawania jest wykonywana w identyczny sposób.
Przykład przedstawiono dla liczb 8-bitowych.
Dziesiętnie
Zapis ZM, U1, U2
89
0 1011001
+
45
+
0 0101101
+ 134
(0)
1 0000110
na bicie ósmym powstało
(1)
0 0000110
przeniesienie
ostateczny wynik
dodawania powiększony
2 7
=
128
zostanie o 128 (
)
6 + 128 = 134
817094690.047.png 817094690.048.png 817094690.049.png 817094690.051.png 817094690.052.png 817094690.053.png 817094690.054.png 817094690.055.png 817094690.056.png 817094690.057.png 817094690.058.png 817094690.059.png 817094690.060.png
 
Zgłoś jeśli naruszono regulamin