Reprezentacja liczb w komputerze.
Reprezentacja liczb w komputerze.
Reprezentacja liczb w komputerze.
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
1 / 5 REPREZENTOWANIE I PRZETWARZANIE INFORMACJI<br />
2 / 5 REPREZENTOWANIE I PRZETWARZANIE INFORMACJI<br />
<strong>Reprezentacja</strong> <strong>liczb</strong> w <strong>komputerze</strong>.<br />
1. Systemy pozycyjne.<br />
a) Systemy <strong>liczb</strong>owe człowieka i maszyny cyfrowej:<br />
System dziesiętny (ang. decimal system):<br />
0 1 2 3 4 5 6 7 8 9 → 10 cyfr<br />
247 = 2*100 + 4*10 + 7*1 = 2*10 2 + 4*10 1 + 7*10 0<br />
6C5 (16) = 1 1 0 1 1 0 0 0 1 0 1 (2)<br />
6 C 5<br />
2. Operacje arytmetyczne na <strong>liczb</strong>ach dwójkowych<br />
a) dodawanie<br />
111 111011<br />
+101 + 1010<br />
---- -------<br />
1100 1000101<br />
+ 0 1<br />
0 0 1<br />
1 1 10<br />
System dwójkowy, binarny (ang. binary system):<br />
0 1 → 2 cyfry<br />
1001011 (2) = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 0 + 2 + 1 = 75 (10)<br />
64 32 16 8 4 2 1<br />
1 0 0 1 0 1 1 = 64 + 8 + 2 + 1 = 75 (10)<br />
System szesnastkowy (ang. hexadecimal system):<br />
0 1 2 3 4 5 6 7 8 9 A B C D E F → 16 cyfr<br />
A7D (16) = A*16 2 + 7*16 1 + D*16 0 = 10*256 + 7*16 + 13*1 = 2685 (10)<br />
256 16 1<br />
A 7 D = 10*256 + 7*16 + 13*1 = 2685 (10)<br />
b) odejmowanie<br />
111 101001<br />
-101 - 1101<br />
---- -------<br />
10 11100<br />
c) mnoŜenie<br />
101 101001<br />
* 10 * 101<br />
---- -------<br />
000 101001<br />
+101_ 000000_<br />
----- +101001__<br />
1010 ---------<br />
11001101<br />
* 0 1<br />
0 0 0<br />
1 0 1<br />
b) Zamiana <strong>liczb</strong> dziesiętnych na dwójkowe i szesnastkowe:<br />
37<br />
18 1 37 (10) = 100101 (2)<br />
9 0<br />
4 1<br />
2 0<br />
1 0<br />
0 1<br />
123<br />
7 11 123 (10) = 7B (16)<br />
0 7<br />
c) Wzajemna zamiana <strong>liczb</strong> dwójkowych i szesnastkowych:<br />
2 1 8 4 2 1 8 4 2 1<br />
1 0 0 1 0 1 1 1 0 1 (2) = 25D (16)<br />
2 5 D<br />
32 16 8 4 2 1<br />
37 (10) = 1 0 0 1 0 1 (2)<br />
16 1<br />
123 (10) = 7 B (16)<br />
3. Długość rozwinięcia binarnego <strong>liczb</strong>y:<br />
Pytanie 1. Jaką największą <strong>liczb</strong>ę naturalną a moŜna zapisać na n bitach?<br />
n = 1 1 (2) = 1 (10)<br />
n = 2 11 (2) = 1 + 2 = 3 (10)<br />
n = 3 111 (2) = 1 + 2 + 4 = 7 (10)<br />
n = 4 1111 (2) = 1 + 2 + 4 + 8 = 15 (10)<br />
a = 2 n – 1<br />
Pytanie 2. Na ilu bitach moŜna zapisać daną <strong>liczb</strong>ę naturalną a?<br />
a = 2 n – 1<br />
a + 1 = 2 n<br />
n = log 2(a+1)<br />
4. Liczby ujemne w systemie dwójkowym:<br />
log<br />
10(<br />
a + 1)<br />
log<br />
2(<br />
a + 1)<br />
=<br />
log 2<br />
a) Standardowy sposób zapisu:<br />
Zapis z tzw. bitem znaku poprzedzającym całą <strong>liczb</strong>ę dwójkową, np.:<br />
5 = 00101 -5 = 10101<br />
Przykładowa <strong>liczb</strong>a (5) zapisana na pięciu bitach, z których pierwszy (od lewej) traktowany jest jako<br />
znak i którego nie moŜna pominąć w zapisie <strong>liczb</strong>y. Cyfra 1 na pozycji bitu znaku oznacza <strong>liczb</strong>ę<br />
ujemną.<br />
10
3 / 5 REPREZENTOWANIE I PRZETWARZANIE INFORMACJI<br />
4 / 5 REPREZENTOWANIE I PRZETWARZANIE INFORMACJI<br />
Istotną wadą zapisu ujemnych <strong>liczb</strong> dwójkowych z bitem znaku jest – występująca w większości<br />
przypadkach – róŜna od zera suma dwóch przeciwnych <strong>liczb</strong>, np.:<br />
5 00101<br />
(+)-5 + 10101<br />
---- -------<br />
0 11010<br />
Wady tej nie posiada tzw. reprezentacja (kod) uzupełnieniowa.<br />
b) <strong>Reprezentacja</strong> uzupełnieniowa (U2)<br />
Zapis matematyczny dowolnej binarnej <strong>liczb</strong>y całkowitej a, zapisanej na n bitach:<br />
dla a ≥ 0 <strong>liczb</strong>a w kodzie U2 = a<br />
dla a < 0 <strong>liczb</strong>a w kodzie U2 = a + 2 n<br />
Np. (dla n = 5):<br />
a = 5 <strong>liczb</strong>a (U2) = 5 = 00101 (2)<br />
a = -5 <strong>liczb</strong>a (U2) = -5 + 2 5 = 27 = 11011 (2)<br />
Sprawdzenie:<br />
5 00101<br />
(+)-5 - 11011<br />
---- -------<br />
0 100000<br />
W praktyce przekształcenie <strong>liczb</strong>y dwójkowej dodatniej na ujemną sprowadza się do wzajemnej<br />
zamiany „0” i „1” w <strong>liczb</strong>ie dodatniej i dodania do wyniku cyfry „1”. Przykład poniŜej.<br />
a = 5, n = 5<br />
5 → 00101<br />
(zamiana) → 11010<br />
+ 1<br />
-5 → 11011<br />
b) <strong>Reprezentacja</strong> zmiennopozycyjna<br />
Zapis zmiennopozycyjny <strong>liczb</strong> stosujemy w przypadku bardzo duŜych lub bardzo małych wartości (np.:<br />
9.4605⋅10 15 [m] – rok świetlny, 9.109558⋅10 -31 [kg] – masa elektronu, …). Zapis ten – nazywany<br />
znormalizowaną reprezentacją zmiennopozycyjną – przedstawia się następująco:<br />
a = m•10 C<br />
gdzie:<br />
m – mantysa, <strong>liczb</strong>a ułamkowa spełniająca nierówność: 0.1 ≤ |m|
5 / 5 REPREZENTOWANIE I PRZETWARZANIE INFORMACJI<br />
Szyfrowanie informacji.<br />
1. Wprowadzenie.<br />
a) Podstawowe pojęcia:<br />
Steganografia – ukrywanie przekazywanych wiadomości;<br />
(przykłady: „połykanie” wiadomości, specjalny „sympatyczny” atrament, miniaturyzacja).<br />
Kryptografia – utajnianie (szyfrowanie) oraz odczytywanie (deszyfrowanie) znaczenia zaszyfrowanej<br />
wiadomości, ale takŜe tworzenie róŜnych metod szyfrowania – szyfrów.<br />
Tekst jawny<br />
szyfrowanie<br />
Tekst zaszyfrowany<br />
(kryptogram,<br />
szyfrogram)<br />
deszyfrowanie<br />
Tekst jawny<br />
Rys. A. Podstawowe pojęcia i zadania kryptografii..<br />
Dla zwiększenia bezpieczeństwa steganografię i kryptografię stosuje się jednocześnie.<br />
Kryptoanaliza – odczytywanie tekstu zaszyfrowanego bez znajomości sposobu szyfrowania (łamanie<br />
szyfru).<br />
Kryptologia – nauka o utajnianiu komunikacji, której dwa główne działy to kryptografia<br />
i kryptoanaliza.<br />
b) Rodzaje szyfrowania:<br />
Szyfrowanie przez przestawianie (szyfr przestawieniowy, transpozycja), w którym przestawiamy<br />
jedynie znaki tekstu jawnego.<br />
Szyfrowanie przez podstawianie (szyfr podstawieniowy), w którym moŜemy zastępować znaki tekstu<br />
jawnego innymi znakami.<br />
Do prostych odmian szyfrowania moŜemy zaliczyć kodowanie. Polega ono na zastępowaniu znaków<br />
tekstu jawnego pewnym zbiorem znaków według jednoznacznego przyporządkowania. Zapis<br />
wspomnianego przyporządkowania nazywany jest ksiąŜką kodową. Wśród bardziej znanych „ksiąŜek<br />
kodowych” moŜemy wyróŜnić kod ASCII (zamiana znaków na postać <strong>liczb</strong>ową) lub alfabet Morse’a<br />
(zamiana znaków na ciąg kresek i kropek).