ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE @KEMOR
SPIS TREŚCI. SYSTEMY LICZBOWE...3.. SYSTEM DZIESIĘTNY...3.2. SYSTEM DWÓJKOWY...3.3. SYSTEM SZESNASTKOWY...4 2. PODSTAWOWE OPERACJE NA LICZBACH BINARNYCH...5 2.. HI, LO (STARSZE, MŁODSZE BITY)...5 2.2. NOT (NEGACJA)...5 2.3. OR (SUMA LOGICZNA)...5 2.4. AND (ILOCZYN LOGICZNY)...5 2.5. XOR (RÓŻNICA SYMETRYCZNA)...6 3. DZIAŁANIA NA LICZBACH BINARNYCH...6 3.. DODAWANIE...6 3.2. ODEJMOWANIE...6 3.3. MNOŻENIE...7 4. DZIAŁANIA NA LICZBACH HEKSADECYMALNYCH...7 4.. DODAWANIE...7 4.2. ODEJMOWANIE...8 5. LICZBY UJEMNE...8 6. LICZBY UŁAMKOWE...8 7. TYPY LICZB BINARNYCH...9 7.. LICZBY NATURALNE BEZ ZNAKU...9 7.2. LICZBY CAŁKOWITE ZE ZNAKIEM...9 7.3. LICZBY RZECZYWISTE... ZAGADNIENIA CYFROWE 2 @KEMOR
. SYSTEMY LICZBOWE DYDAKTYKA Istnieją trzy systemy liczbowe:. System dziesiętny (decymalny), np. 4. 2. System dwójkowy (zerojedynkowy, binarny), np. b. 3. System szesnastkowy (heksadecymalny), np. Eh lub $E. Wszystkie te systemy można opisać jednym ogólnym wzorem przeliczającym na liczbę dziesiętną: N L = P W + P W +! + P WN gdzie: L P W i N N i L = Wi P i= Liczba dziesiętna, Podstawa systemu liczbowego określająca ilość wartości liczbowych danego systemu: - dziesiętnego P =, liczby -9, - dwójkowego P = 2, bity lub, - szesnastkowego P = 6, liczby -F. Wartość liczby w danym systemie (np.,, 7, A, F), Ilość cyfr w danym systemie... SYSTEM DZIESIĘTNY Liczba dziesiętna posiada dostępnych cyfr od do 9, którą wg wzoru powyżej da się ją przedstawić w postaci: Nr cyfry 3 2 Cyfra 2 4 8 2 3 248= ( ) + ( 8) + ( 4) + ( 2) = + 8 + 4 + 2.2. SYSTEM DWÓJKOWY Podstawową jednostką informatyczną jest bit. Bit może przybierać dwie wartości lub. Grupa ośmiu bitów (np. ) nazywa się bajtem. Bajt z kolei może posiadać wartość z zakresu od ( ) do 255 ( ). Liczbę w systemie dwójkowym przelicza się w następujący sposób: Nr bitu 7 6 5 4 3 2 Bit 2 3 4 5 6 7 = (2 ) + (2 ) + (2 ) + (2 ) + (2 ) + (2 ) + (2 ) + (2 ) = + 2 + 4 + + 6 + + + 28 = 5 Wartość w systemie dziesiętnym uzyskiwana jest przez zsumowanie kolejnych cyfr (licząc od prawej strony, czyli od najniższych wag) odpowiednio pomnożonych przez kolejne potęgi dwójki zaczynając od potęgi zerowej. Zatem liczba w systemie dwójkowym odpowiada liczba 5 w systemie dziesiętnym. ZAGADNIENIA CYFROWE 3 @KEMOR
Przeliczeń łatwo jest dokonywać znając odpowiednie potęgi: Pozycja bitu 7 6 5 4 3 2 Potęga 2 2 7 2 6 2 5 2 4 2 3 2 2 2 2 Wartość dziesiętna 28 64 32 6 8 4 2 Pozycja bitu 5 4 3 2 9 8 Potęga 2 2 5 2 4 2 3 2 2 2 2 2 9 2 8 Wartość dziesiętna 32768 6384 892 496 248 24 52 256 Zamiana liczby dziesiętnej na liczbę binarną można dokonać w dwojaki sposób: poprzez rozpoznawanie zakresu liczby 2 podniesionej do potęgi n, np.: Liczba 3. Najmniejszą wartością potęgi dwójkowej jest liczba 64 (następna wynosi 28 i jest większa od 3). Posiada ona wykładnik potęgi 6, co oznacza, że bit 6 liczby binarnej ma wartość. Pozostaje reszta 3 64 = 39. Dwa do potęgi piątej, 2^5 = 32 i jest ona najbliższa i zarazem mniejsza od 39. Teraz pozostaje reszta 39 32 = 7. Dopasowujemy kolejną potęgę. A więc dwa do trzeciej jest większe od 7, toteż dwa do drugiej będzie odpowiednie, 2^2 = 4. Do reszty 7 4 = 3, pasuje 2^ = 2. Różnica wynosi 3 2 =. Tu tylko pasuje 2^ = i cała wartość liczby została wyczerpana. Liczba dziesiętna: 7 6 5 4 3 2 3 = (2 ) + (2 ) + (2 ) + (2 ) + (2 ) + (2 ) + (2 ) + (2 ) Liczby mnożone poprzez cyfrę dwa w odpowiedniej potędze, czytane od końca do początku tego rozkładu dają następującą postać liczby dwójkowej: matematycznie, np.: 3 5 25 2 6 3 /2 Liczbę dzielimy przez 2 dopóki iloraz osiągnie wartość, spisując reszty za każdym całkowitym podziałem w prawej kolumnie. Mianowicie 3/2=5 reszty, 5/2=25 reszty, 25/2=2 reszty, 2/2=6 reszty, 6/2=3 reszty, 3/2= reszty /2= reszty. Czytając reszty od tyłu rozkładu, otrzymujemy, co dla ośmiu bitów mamy..3. SYSTEM SZESNASTKOWY System szesnastkowy jest dużo wygodniejszy w stosunku do systemu dwójkowego, choćby z tego powodu, że jego zapis jest o wiele krótszy. Podstawowe cyfry jednostkowe to: Wartość cyfry 5 4 3 2 9 8 7 6 5 4 3 2 Cyfra F E D C B A 9 8 7 6 5 4 3 2 Liczbę w systemie szesnastkowym przelicza się w następujący sposób: Nr cyfry 3 2 Cyfra 2 E 4 F 2E4F = (6 F) + (6 4) + (6 2 E) + (6 3 2) ZAGADNIENIA CYFROWE 4 @KEMOR
DYDAKTYKA 2E4F = (6 5) + (6 4) + (6 4) + (6 2 E4F = 5 + 64 + 3584 + 892 = 855 2 Przejście od systemu dwójkowego do szesnastkowego i odwrotnie jest wyjątkowo proste. 855 = 2 E 4 F 65 58 = F E 8 6 Zatem FE86 = Konwersja liczby heksadecymalnej na liczbę dziesiętna jest podobna konwersji w systemie binarnym. 3 2) 6245 393 243 5 /6 2 5 3 5 Mając np. liczbę dziesiętną 6245, robimy to w następujący sposób: 6245/6=393 reszty 2, 393/6=243 reszty 5 (5 to cyfra F), 243/6=5 reszty 3, 5/6= reszty 5 (czyli F). Czytając reszty od tyłu rozkładu, otrzymujemy F3F2. 2. PODSTAWOWE OPERACJE NA LICZBACH BINARNYCH 2.. Hi, Lo (Starsze, młodsze bity) Bajt składa się z młodszych (Lo) bitów oraz ze starszych (Hi) bitów. Np. dla bajtu B = mamy: Hi(B) =, Lo(B) =, co w systemie dziesiętnym odpowiada: B = 5, Hi(B) = 9, Lo(B) = 7. 2.2. NOT (Negacja) Negacja bajtu polega na zamienieniu bitu na oraz bitu na, np. B =, to Not B = 2.3. OR (Suma logiczna) Wynikiem sumy logicznej jest wartość powstająca poprzez sumę poszczególnych bitów. Wynikiem sumy bitów i jest, a w pozostałych przypadkach. OR = 2.4. AND (Iloczyn logiczny) Wynikiem iloczynu logicznego jest wartość powstająca poprzez iloczyn poszczególnych bitów. Wynikiem iloczynu bitów i jest, a w pozostałych przypadkach. AND = ZAGADNIENIA CYFROWE 5 @KEMOR
2.5. XOR (Różnica symetryczna) DYDAKTYKA Wynikiem różnicy symetrycznej jest wartość powstająca poprzez odpowiednią składnię poszczególnych bitów. Wynikiem działania dwóch bitów jest w przypadku gdy jeden bit =, a drugi = lub gdy pierwszy bit =, a drugi =. W pozostałych przypadkach wynikiem działania jest bit o wartości. XOR = 3. DZIAŁANIA NA LICZBACH BINARNYCH 3.. DODAWANIE Liczby binarne dodaje się identycznie jak dziesiętne. Szybciej zapełniają się kolumny, a więc częściej trzeba dokonywać przeniesień, jak przedstawia to poniższa tabela. LICZBA Dziesiętna Binarna + = + = + = + = + = 2 + = + + = 3 + + = Dodanie dwóch liczb binarnych (29 + 3 = 6): Reszty przeniesienia = 29 + = 3 = 6 3.2. ODEJMOWANIE Operacją odejmowania będzie różnica dwóch liczb: 6 i 3. Wynik będzie wynosił 29, binarnie. pobranie z 3 kolumny jedynki do pierwszej zabrana jedynka - = 6 = 3 - Odejmowanie sprawia trochę więcej kłopotów, gdyż trzeba odjąć od. Przeszukujemy następne kolumny od prawej do lewej strony, dopóki nie znajdziemy. Jedynka jest w kolumnie trzeciej, którą dopisujemy do kolumny pierwszej i otrzymujemy (jeden, zero), jak na rysunku powyżej. Następnie, zera znajdujące się tymi kolumnami (kolumną trzecią a pierwszą, czyli tylko w drugiej) zamieniamy na jedynki, jak na rysunku poniżej. ZAGADNIENIA CYFROWE 6 @KEMOR
- Teraz dopiero można wrócić do odejmowania. Ponieważ + =, a więc w kolumnie pierwszej piszemy jedynkę. Dalej w kolumnie drugiej jest =. W kolumnie trzeciej znowu jest zero, a więc znowu trzeba poszukać najbliższej kolumny z jedynką i zastosować się do omówionego algorytmu, czyli pożyczyć teraz jedynkę z kolumny czwartej. Brak kolumn dzielących kolumnę bieżącą kolumną, od której się pożycza, więc nie ma nic do uzupełnienia jedynkami. Sytuację taką przedstawia rysunek poniżej: Dochodzi do pożyczenia, aż do szóstej kolumny odjemnej, skąd zostaje pożyczona jedynka do - piątej kolumny. Dalej będą otrzymywane jedynki. W wyniku przeliczeń otrzymujemy binarnie, co wynosi 29. 3.3. MNOŻENIE Mnożenie liczb binarnych odbywa się identycznie jak liczb dziesiętnych. Liczbę 3 należy przemnożyć każdorazowo przez każdy bit liczby. Po każdym przemnożeniu należy dokonać sumy poszczególnych iloczynów. = 3 = + + + = 43 4. DZIAŁANIA NA LICZBACH HEKSADECYMALNYCH 4.. DODAWANIE Proces dodawania występuje podobnie jak w systemie dziesiętnym, gdzie resztę przenosi się do następnej kolumny. 8+7=5d=Fh + + 8 A E 5 + 7 5 B +A+=d=Bh F B 4 = 35557 = 28763 = 6432 5+B=5+=6= +E+5=2d=4h ZAGADNIENIA CYFROWE 7 @KEMOR
4.2. ODEJMOWANIE F B 4-7 5 B = 6432 = 28763 Odejmowanie, podobnie jak w systemie dziesiętnym, dokonuje się począwszy od prawej kolumny. W pierwszej kolumnie odjemnej jest cyfra heksadecymalna równa, w pierwszej kolumnie odjemnika jest cyfra heksadecymalna B (= ). Należy pożyczyć do zera kolumny pierwszej jedną szesnastkę (jakby dziesiątkę). 6 F B 3-7 5 B Od liczby 6 odejmuje się B, czyli (6 = 5). Następnie odejmuje się od 3 liczbę 5. Teraz trzeba pożyczyć z trzeciej kolumny od liczby B, zmniejszając ją do liczby A. A=B 6+3=9 F 7=5 7=8 6 F A 3-7 5 B 8 A E 5 A =A 6 B=6 =5 9 5=4=E 5. LICZBY UJEMNE Aby zapisać liczbę ujemną w kodzie dwójkowym można stosować tzw. kod uzupełnień do dwóch. Zamiana liczby 29 na 29 wygląda następująco: = 29 Negacja 29 + Dodanie jedynki Liczba 29 6. LICZBY UŁAMKOWE Rozpatrywany zostanie ułamek dziesiętny 29.6875. Kropka oddziela część całkowitą od części ułamkowej. Oddzielnie zamienia się część całkowitą i oddzielnie część ułamkową. 29 4 7 3 /2 Liczba 29 będzie wynosiła w systemie binarnym. Część ułamkową przedstawia się jako ciąg:.6875 = N*2^(-) + N2*2^(-2) +... + Nn*2^(-n) ZAGADNIENIA CYFROWE 8 @KEMOR
Liczy się najwyższą ujemną potęgę liczby 2, najbliższą swej wartości jest 2^(-), czyli.5 (N = ). Różnica liczb.6875.5 daje.875. 2^(-2) =.25 jest większe od.875 (N2 = ). Kontynuując tak dalej wg schematu, uzyskuje się rozkład ułamka wedle ujemnych potęg:.6875 = *2^(-) + *2^(-2) +*2^(-3) +*2^(-4) =. dwójkowo. Cała liczba ułamkowa wyniesie:.. 7. TYPY LICZB BINARNYCH 7.. LICZBY NATURALNE BEZ ZNAKU NAZWA BAJTÓW BITÓW ZAKRES BYTE 8..255 WORD 2 6..65535 LONGWORD 4 32..4294967295 BYTE bajt 2 7 2 WORD 2 bajty 2 5 2 LONGWORD 4 bajty 2 3 2 7.2. LICZBY CAŁKOWITE ZE ZNAKIEM NAZWA BAJTÓW BITÓW ZAKRES SHORTINT 8 28..27 SMALLINT 2 6 32768..32767 LONGINT 4 32 247483648..247483647 INT64 8 64 2^63..2^63 SHORTINT bajt 7 bitów ZAGADNIENIA CYFROWE 9 @KEMOR
SMALLINT 2 bajty 5 bitów LONGINT 4 bajty 3 bitów INT64 8 bajtów 63 bity 7.3. LICZBY RZECZYWISTE NAZWA BAJTÓW BITÓW ZAKRES SINGLE 4 32.5 x ^ 45.. 3.4 x ^38 REAL48 6 48 2.9 x ^ 39...7 x ^38 DOUBLE 8 64 5. x ^ 324...7 x ^38 EXTENDED 8 3.6 x ^ 495... x ^4932 SINGLE 4 bajty 8 bitów 23 bity cecha mantysa Wartość liczby w określona jest następująco: S (C 29) ( ) 2 (.m), S 26 ( ) 2 (.m), w = S ( ), S ( ) Inf, NaN, gdy < C < 255 gdy C = i m gdy C = i m = gdy C = 255 i m = gdy C = 255 i m ZAGADNIENIA CYFROWE @KEMOR
REAL48 6 bajtów 39 bitów 8 bitów... cecha mantysa Wartość liczby w określona jest następująco: S (C 29) ( ) 2 (.m), w =, gdy < C 255 gdy C = DOUBLE 8 bajtów bitów 52 bity... cecha mantysa Wartość liczby w określona jest następująco: S (C 23) ( ) 2 (.m), S 22 ( ) 2 (.m), w = S ( ), S ( ) Inf, NaN, gdy < C < 247 gdy C = i m gdy C = i m = gdy C = 247 i m = gdy C = 247 i m EXTENDED bajtów 5 bitów 23 bity... cecha mantysa i Wartość liczby w określona jest następująco: S (C 6383) ( ) 2 (.m), S w = ( ) Inf, NaN, gdy < C < 32767 gdy C = 32767 i m = gdy C = 32767 i m ZAGADNIENIA CYFROWE @KEMOR