19.11.2013 Views

Reprezentacja liczb w komputerze.

Reprezentacja liczb w komputerze.

Reprezentacja liczb w komputerze.

SHOW MORE
SHOW LESS

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).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!