Pozycyjny system liczbowy

Podobne dokumenty
ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Wstęp do informatyki- wykład 1 Systemy liczbowe

Podstawy Informatyki

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Systemy zapisu liczb.

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Technologie Informacyjne

Pracownia Komputerowa wykład VI

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

Architektura komputerów

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Arytmetyka binarna - wykład 6

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Stan wysoki (H) i stan niski (L)

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

SYSTEMY LICZBOWE 275,538 =

Podstawy Informatyki

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Teoretyczne Podstawy Informatyki

LICZBY ZMIENNOPRZECINKOWE

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Arytmetyka liczb binarnych

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Metoda znak-moduł (ZM)

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Architektura komputerów

1259 (10) = 1 * * * * 100 = 1 * * * *1

Naturalny kod binarny (NKB)

Pracownia Komputerowa wyk ad VI

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Wstęp do informatyki- wykład 2

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Kodowanie informacji. Kody liczbowe

Kod U2 Opracował: Andrzej Nowak

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Arytmetyka stałopozycyjna

Podstawy Informatyki dla Nauczyciela

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

1.1. Pozycyjne systemy liczbowe

Wstęp do informatyki- wykład 1

Technologie Informacyjne Wykład 4

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Pracownia Komputerowa wykład IV

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Wprowadzenie do informatyki - ć wiczenia

System Liczbowe. Szesnastkowy ( heksadecymalny)

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

Operacje arytmetyczne

Techniki multimedialne

Cyfrowy zapis informacji

LICZBY ZMIENNOPRZECINKOWE

Wstęp do informatyki- wykład 1 Systemy liczbowe

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.

Wprowadzenie do informatyki - ć wiczenia

Luty 2001 Algorytmy (7) 2000/2001

Zapis liczb binarnych ze znakiem

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Systemy liczbowe używane w technice komputerowej

Pracownia Komputerowa wyk ad IV

1. Operacje logiczne A B A OR B

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

Systemy liczbowe. Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Arytmetyka stało i zmiennoprzecinkowa

L6.1 Systemy liczenia stosowane w informatyce

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

architektura komputerów w. 2

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

Architektura komputerów

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Systemy liczbowe. 1. System liczbowy dziesiętny

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Kodowanie liczb całkowitych w systemach komputerowych

Transkrypt:

Arytmetyka binarna

Pozycyjny system liczbowy w pozycyjnych systemach liczbowych wkład danego symbolu do wartości liczby jest określony zarówno przez sam symbol, jak i jego pozycję w liczbie i tak np. w systemie dziesiętnym posługujemy się dziesięcioma cyframi, znakami plus i minus oraz przecinkiem określającym pozycję dziesiętna; pozycja poszczególnych cyfr w liczbie określa jaki mnożnik musi zostać zastosowany 27 = 2 3 + 2 + + 7

Pozycyjny system liczbowy w pozycyjnych systemach liczbowych wkład danego symbolu do wartości liczby jest określony zarówno przez sam symbol, jak i jego pozycję w liczbie i tak np. w systemie dziesiętnym posługujemy się dziesięcioma cyframi, znakami plus i minus oraz przecinkiem określającym pozycję dziesiętna; pozycja poszczególnych cyfr w liczbie określa jaki mnożnik musi zostać zastosowany 27 = 2 3 + 2 + + 7 czyli dowolną liczbę dodatnią można zapisać jako: n a i i i= dodanie minusa umożliwia reprezentowanie zarówno wartości dodatnich, jak i ujemnych po przecinku umieszczana jest część ułamkowa: mnożnik pierwszej wartości po przecinku wynosi, drugiej 2, itd. system dziesiętny pozwala na dokładną reprezentację dowolnej liczby całkowitej, nie jest to jednak możliwe w przypadku ułamków, które możemy jedynie zapisywać z arbitralnie określoną dokładnością

Pozycyjny system liczbowy system pozycyjny o podstawie nie jest oczywiście jedynym możliwym systemem pozycyjnym n cyfrową liczbę całkowitą dodatnią w systemie o podstawie B można zapisać w postaci: n a i B i i= wybór podstawy systemu jest ograniczony faktem, że w systemie o podstawie B do zapisu wartości konieczne jest B symboli, z drugiej strony potrzebne są co najmniej dwa znaki, gdyż jeden z nich () pełni funkcję wypełniacza (placeholder) w informatyce liczby najczęściej wyrażane są w systemie o podstawie dwa, osiem, bądź szesnaście

System dwójkowy system pozycyjny o podstawie 2 nazywany jest systemem dwójkowym (binarnym) do zapisu wartości stosowane są dwa symbole i cyfry w systemie dwójkowym nazywane są bitami (bits binary digits) wartość na pozycji n liczby dwójkowej przemnażana jest przez 2 n = 6 + 8 + 4 + 2 + = 2 2 4 + 2 3 + 2 2 + 2 + 2 6 + 4 +

Przechowywanie informacji w postaci bitów na pojedynczym bicie można zapisać dwie (dowolne) wartości, i na n bitach (pozycjach) liczby dwójkowej można zapisać 2 n różnych wartości, największa równa jest 2 n na jednym bajcie (ośmiu bitach), można zapisać 2 8 = 256 różnych wartości, ale ponieważ jedna z nich musi reprezentować zero największą możliwą liczbą jest 2 8 = 255 w komputerze liczby zapisywane są jako słowa o ustalonym rozmiarze, oznacza to, że każda liczba binarna musi mieć taką samą liczbę bitów; w przypadku wartości całkowitych jest to zapewnione przez uzupełnienie liczby zerami z lewej strony

Niektóre cechy liczb binarnych jeżeli bit zerowy (skrajny prawy) liczby całkowitej jest zerem, liczba jest parzysta ( - nieparzysta) przesunięcie wszystkich bitów liczby o jedno miejsce w lewo powoduje pomnożenie liczby przez 2 przysunięcie wszystkich bitów liczby bez znaku w prawo o jedno miejsce oznacza podzielenie tej liczby przez dwa (dla ujemnych ta reguła nie działa); liczby nieparzyste po podzieleniu zaokrąglane są w dół negacja wszystkich bitów liczby binarnej jest równoważna wzięciu przeciwieństwa liczby i odjęciu od wyniku jedynki zwiększenie o jeden największej możliwej do zapisania na danej liczbie bitów wartości bez znaku daje zero zmniejszenie zera o jeden daje największą możliwą liczbę bez znaku

Zamiana liczb zapisanych w systemie dziesiętnym na dwójkowy znajdujemy największą potęgę liczby dwa mniejszą niż liczba, którą zamieniamy; dla zamienianej liczby dziesiętnej D, takiej że 2 n+ > D > 2 n, jej reprezentacja binarna będzie zapisana na n + bitach i skrajny lewy bit będzie równy od liczby D odejmujemy 2 n i zapamiętujemy wynik R dla każdej potęgi dwójki od 2 n do 2, jeżeli jest ona mniejsza lub równa R, na odpowiadającej jej pozycji w liczbie dwójkowej zapisujemy jedynkę, a potęgę dwójki odejmujemy od R, w przeciwnym wypadku w odpowiedniej pozycji wpisujemy zero

Zamiana liczb zapisanych w systemie dziesiętnym na dwójkowy znajdujemy największą potęgę liczby dwa mniejszą niż liczba, którą zamieniamy; dla zamienianej liczby dziesiętnej D, takiej że 2 n+ > D > 2 n, jej reprezentacja binarna będzie zapisana na n + bitach i skrajny lewy bit będzie równy od liczby D odejmujemy 2 n i zapamiętujemy wynik R dla każdej potęgi dwójki od 2 n do 2, jeżeli jest ona mniejsza lub równa R, na odpowiadającej jej pozycji w liczbie dwójkowej zapisujemy jedynkę, a potęgę dwójki odejmujemy od R, w przeciwnym wypadku w odpowiedniej pozycji wpisujemy zero przykład 4 2 7 < 4 4 28 = 3 2 6 > 3 2 5 > 3 2 4 > 3 2 3 < 3 3 8 = 5 2 2 < 5 5 4 = 2 > 2 >

Reprezentacja binarna liczby zapisanej w systemie dziesiętnym 3 / 2 = 6 r. 6 / 2 = 3 r. 3 / 2 = r. / 2 = r.

Przejście z reprezentacji binarnej do reprezentacji dziesiętnej WAGA x 2 = x 2 = 2 x 2 = 4 x 2 3 = 8 3

Ułamki w reprezentacji binarnej. WAGA x 2 3= /8 x 2 2= x 2 = /2 x 2 = x 2 = x 2 2 = 4 55/ 8

System szesnastkowy (heksadecymalny) w przypadku systemu szesnastkowego do zapisu liczby koniecznych jest szesnaście symboli, stosuje się dziesięć cyfr,, 2, 3, 4, 5, 6, 7, 8 i 9 oraz litery A, B, C, D, E i F symbole od do 9 mają takie same wartości jak w systemie dziesiętnym natomiast ich mnożniki pozycyjne są inne pozostałym symbolom odpowiadają wartości: A -, B -, C - 2, D - 3, E - 4 i F - 5 każda cyfra systemu szesnastkowego odpowiada jednej z możliwych kombinacji czterech cyfr systemu dwójkowego 2-owy 6-owy -tny 2 2 3 3 4 4 5 5 6 6 7 7 2-owy 6-owy -tny 8 8 9 9 A B C 2 D 3 E 4 F 5 cztery cyfry systemu szesnastkowego pozwalają na zapisanie takiej samej wartości jak szesnaście cyfr systemu binarnego

Zamiana liczb zapisanych w systemie szesnastkowym na dwójkowy i odwrotnie 6 2: dla każdej cyfry systemu szesnastkowego należy napisać cztery cyfry dwójkowe reprezentujące tą samą wartość, np.: 4C 6 4 6 = 2 i C 6 = 2 2 2 6: liczbę binarną należy podzielić na grupy po cztery bity zaczynając od prawej strony, jeżeli w ostatniej grupie znalazły się mniej niż cztery bity należy ją uzupełnić zerami z lewej strony (jeżeli liczba binarna zawiera kropkę dziesiętną podziału należy dokonać od prawej do lewej dla części całkowitej i od lewej do prawej dla części ułamkowej); tak otrzymanym grupom należy przypisać równoważne cyfry szesnastkowe, np.: 2 3D 6

System ósemkowy w systemie ósemkowym do zapisu liczby stosowanych jest osiem symboli:,, 2, 3, 4, 5, 6 i 7 symbole mają takie same wartości jak w systemie dziesiętnym, a ich mnożniki pozycyjne są potęgami liczby osiem każda cyfra systemu ósemkowego odpowiada jednej z możliwych kombinacji trzech cyfr systemu dwójkowego 2-owy 8-owy -tny 2 2 3 3 4 4 5 5 6 6 7 7

Zamiana liczb zapisanych w systemie ósemkowym na dwójkowy i odwrotnie 8 2: dla każdej cyfry systemu ósemkowego należy napisać trzy cyfry dwójkowe reprezentujące tą samą wartość, np.: 24 8 8 = 2 2 8 = 2 i 4 8 = 2 2 2 8: liczbę binarną należy podzielić na grupy po trzy bity zaczynając od prawej strony, np.: 2 4 8

Dodawanie liczb w systemie binarnym + + + +

Przykład +

Dodawanie liczb w systemie binarnym A B C i S C o A B C i S C o gdzie: A i B dodawane wartości, C i - przeniesienie z poprzedniej kolumny, S - suma, C o - przeniesienie jeżeli wszystkie trzy bity są zerami suma i przeniesienie wynoszą zero jeżeli którykolwiek z dodawanych bitów jest jedynką, a dwa pozostałe są zerami, suma wynosi jeden, a przeniesienie zero jeżeli dwa bity są jedynkami suma wynosi zero i pojawia się niezerowa wartość przeniesienia jeżeli wszystkie trzy bity są jedynkami zarówno suma, jak i przeniesienie wynoszą jeden

Odejmowanie liczb w systemie dwójkowym *

Przykład

Mnożenie liczb w systemie dwójkowym x x x x

Przykład x +

Dzielenie liczb w systemie dwójkowym :

Wartości ujemne w systemie dwójkowym, gdzie stosowane są dwie cyfry, wygodnie jest stosować jedną z nich dla oznaczenia wartości dodatnich a drugą dla oznaczenia wartości ujemnych skrajny lewy bit wykorzystywany jest jako bit znaku, gdzie zero oznacza wartość dodatnią a jeden wartość ujemną problem dwóch zer ( i ) eliminowany jest przez system uzupełnieniowy do dwóch; wartości dodatnie są traktowane jak wartości całkowite bez znaku, natomiast w przypadku wartości ujemnych bit znaku reprezentuje potęgę liczby dwa odpowiadającą swojej pozycji w liczbie wziętą ze znakiem minus a pozostałe bity są traktowane jak wartości dodatnie, np: 28 26 ( 28 + 27) system uzupełnieniowy do dwóch jest niesymetryczny względem zera, dla dowolnego rozmiaru liczby dwójkowej wartości ujemnych jest o jeden więcej niż wartości dodatnich (dla dowolnej liczby dwójkowej liczba możliwych kombinacji bitów jest zawsze liczbą parzystą), a ponieważ chcemy aby zero było reprezentowane przez ciąg składający się z samych zer nie ma możliwości aby było inaczej liczby w systemie uzupełnieniowym do dwóch mogą być rozszerzone przez powtórzenie bitu znaku po lewej stronie (jeżeli istnieje konieczność zapisania ich na określonej długości ciągu)

Notacja uzupełnieniowa do dwóch wartość liczby w systemie uzupełnieniowym do dwóch otrzymywana jest przez dodawanie do dużej liczby ujemnej (o wartości wynikającej z liczby użytych bitów) odpowiednich potęg dwójki: n 2 2 n a n + a i 2 i istnieje prosta metoda tworzenia wartości w tym systemie: i= należy utworzyć ciąg uzupełnień analizowanej liczby przez negację każdego bitu ( i ) do otrzymanego ciągu należy dodać jedynkę (jak dla operacji bez znaku)

Notacja uzupełnieniowa do dwóch wartość liczby w systemie uzupełnieniowym do dwóch otrzymywana jest przez dodawanie do dużej liczby ujemnej (o wartości wynikającej z liczby użytych bitów) odpowiednich potęg dwójki: n 2 2 n a n + a i 2 i istnieje prosta metoda tworzenia wartości w tym systemie: i= należy utworzyć ciąg uzupełnień analizowanej liczby przez negację każdego bitu ( i ) do otrzymanego ciągu należy dodać jedynkę (jak dla operacji bez znaku) np.: oryginalna wartość 87 każdy bit jest odwrócony + dodajemy wartość wyjściowa 87

Notacja uzupełnieniowa do dwóch ( + ) 2 2 bit znaku ( ) 3 3 4 4 5 5 6 6 7 7 bit znaku 8

Liczby ze znakiem Na n bitach można zapisać wartości ze znakiem od 2 n do +2 n czyli: bajt od 28 do +27 6 bitów od 32 768 do +32 767 32 bity od 2 47 483 648 do +2 47 483 647

Przepełnienie (overflow) rozmiar wartości, na których dokonywane są obliczenia zależy od architektury komputera niezależnie od architektury istnieje maksymalna możliwa wartość niezależnie od architektury mamy do czynienia ze skończoną precyzją obliczeń zawsze też będzie się pojawiał problem przepełnienia, czyli przekroczenia zakresu reprezentowanych wartości (jeżeli posługiwalibyśmy się trzycyfrowym systemem dziesiętnym, to moglibyśmy np. zapisać w nim wartości i 3 oraz otrzymać poprawną wartość ich sumy, ale w przypadku wartości 5 i 7 ich suma nie jest możliwa do zapisania na trzech pozycjach) przepełnienie nie może wystąpić przy dodawaniu dwóch liczb o przeciwnych znakach przepełnienie może się pojawić np. przy dodawaniu dwóch wartości dodatnich lub dwóch wartości ujemnych (zapisanych w notacji uzupełnieniowej do dwóch), z przepełnieniem mamy do czynienia jeżeli doszło do zmiany znaku (kontrola może być dokonana poprzez bit znaku)

Przepełnienie Może się okazać, że prawa łączności i przemienności działań niekoniecznie są spełnione:

Przepełnienie Może się okazać, że prawa łączności i przemienności działań niekoniecznie są spełnione: a + (b c) = (a + b) c jeżeli np. a = 7, b = 4 i c = 3 lewa strona wyrażenia zwraca poprawny wynik 8, natomiast po prawej stronie pojawia się przepełnienie: (7 + 4) = czyli wartość, której nie da się zapisać na trzech pozycjach

Przepełnienie Może się okazać, że prawa łączności i przemienności działań niekoniecznie są spełnione: a + (b c) = (a + b) c jeżeli np. a = 7, b = 4 i c = 3 lewa strona wyrażenia zwraca poprawny wynik 8, natomiast po prawej stronie pojawia się przepełnienie: (7 + 4) = czyli wartość, której nie da się zapisać na trzech pozycjach a (b c) = a b a c jeżeli np. a = 5, b = 2 i c = 95 lewa strona wyrażenia zwraca poprawny wynik 75, natomiast po prawej stronie pojawia się przepełnienie: (5 2) = 5

Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S

Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S 26 8 2

Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S 26 8 2 26 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2

Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S 26 8 2 26 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 26 << 2 2 7 + 2 6 + 2 5 + 2 4 + 2 3 8

Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S 26 8 2 26 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 26 << 2 2 7 + 2 6 + 2 5 + 2 4 + 2 3 8 8 >> 2 2 7 + 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 2

Dodawanie/odejmowanie w notacji uzupełnieniowej do dwóch + 3 2 5 3 + 2 + 7 5 5 2

Mnożenie liczb dodatnich bez znaku w notacji uzupełnieniowej do dwóch jeżeli skrajny prawy bit mnożnika jest równy jeden kopia mnożnej daje wkład do wyniku dla każdej kolejnej cyfry mnożnika przesuwamy mnożną o jedną cyfrę w lewo algorytm kończy się po przejściu przez wszystkie cyfry mnożnika sumujemy otrzymane wartości

Mnożenie liczb dodatnich bez znaku w notacji uzupełnieniowej do dwóch jeżeli skrajny prawy bit mnożnika jest równy jeden kopia mnożnej daje wkład do wyniku dla każdej kolejnej cyfry mnożnika przesuwamy mnożną o jedną cyfrę w lewo algorytm kończy się po przejściu przez wszystkie cyfry mnożnika sumujemy otrzymane wartości mnożna (7 ) mnożnik (5 ) pierwszy częściowy iloczyn drugi częściowy iloczyn trzeci częściowy iloczyn czwarty częściowy iloczyn wynikowy iloczyn (35 )

Mnożenie liczb w notacji uzupełnieniowej do dwóch - algorytm Bootha Oznaczmy przez m mnożną zapisaną na x bitach, r - mnożnik zapisany na y bitach, P - wynik mnożenia oraz dwie wielkości pomocnicze A i S. P, A i S muszą mieć rozmiar x + y +. określamy wartości A i S oraz wartość początkową P A najbardziej znaczące bity rejestru wypełniamy wartościami m, pozostałe uzupełniamy zerami S najbardziej znaczące bity rejestru wypełniamy wartościami m w notacji uzupełnieniowej do dwóch, pozostałe uzupełniamy zerami P x najbardziej znaczących bitów wypełniamy zerami, następnie wpisujemy wartości r, pozostałe bity uzupełniamy zerami 2. jeżeli dwa najmniej znaczące bity P wynoszą obliczamy P + A (ignorujemy przepełnienie) obliczamy P + S (ignorujemy przepełnienie) lub pozostawiamy P bez zmian 3. dla wartości otrzymanej w kroku 2 dokonujemy przesunięcia arytmetycznego o jedno miejsce w prawo, otrzymany wynik przypisujemy do P 4. powtarzany kroki 2 i 3 y razy 5. usuwamy najmniej znaczący bit

Przykład: m = 3 r = 4 x = 4 y = 4 A (m) S ( m) P (r). P = najmniej znaczące bity wynoszą więc dokonujemy tylko przesunięcia arytmetycznego w prawo (bit najstarszy jest powielany) P = 2. P = najmniej znaczące bity wynoszą więc dokonujemy tylko przesunięcia arytmetycznego w prawo P = 3. P = najmniej znaczące bity wynoszą więc wykonujemy P + S a potem przesunięcie + = 4. P = najmniej znaczące bity wynoszą więc dokonujemy tylko przesunięcia arytmetycznego w prawo P = WYNIK: P ( 2)

Liczby zmiennoprzecinkowe notacja naukowa: n = f e gdzie: f - ułamek, e wykładnik zarówno f, jak i e mogą być ujemne jeżeli f jest ujemne liczba n jest ujemna jeżeli e jest ujemne liczba n jest mniejsza od jeden ideą notacji naukowej jest oddzielenie cyfr znaczących (f ) od rzędu wielkości (e)

Liczby zmiennoprzecinkowe notacja naukowa: n = f e gdzie: f - ułamek, e wykładnik zarówno f, jak i e mogą być ujemne jeżeli f jest ujemne liczba n jest ujemna jeżeli e jest ujemne liczba n jest mniejsza od jeden ideą notacji naukowej jest oddzielenie cyfr znaczących (f ) od rzędu wielkości (e) ta sama idea jest wykorzystywana w przypadku zapisu liczb zmiennoprzecinkowych, dzięki temu możliwy jest zapis wartości z bardzo szerokiego zakresu z akceptowalną dokładnością obecnie obowiązuje standard IEEE 754 zapisu wartości zmiennoprzecinkowych (IEEE Institute of Electrical and Electronic Engineers) część ułamkowa zapisywana jest w notacji dwójkowej, natomiast wykładnik jest potęgą dwójki

Notacja zmiennopozycyjna BAJT pole wykladnika bit znaku pole czesci ulamkowej mantysa W przypadku liczby o pojedynczej (podwójnej) precyzji: bit znak ( wartość nieujemna, - wartość ujemna) 8() bitów wykładnik zapisywany jako liczba ze znakiem w notacji z nadmiarem (jakim zależy od precyzji) 23(52) bity ułamek Zakres wartości jest rzędu ± 38 ± 38 (± 38 ± 38 )

Normalizacja wartości każdą wartość można zapisać stosując różne wartości w części ułamkowej dobierając odpowiedni wykładnik mając jednak do czynienia z zapisem wartości na określonej i stałej liczbie pozycji zera poprzedzające daną wartość powodują utratę precyzji aby tego uniknąć wartości zmiennoprzecinkowe zapisywane są w taki sposób, że skrajny lewy bit nie może być zerem; tak zapisana wartość jest liczbą znormalizowaną jeżeli wiadomo, że najbardziej lewy bit jest równy jeden nie ma konieczności zapisywania go dzięki czemu zyskuje się dodatkowy znak

Notacja zmiennopozycyjna między dwiema liczbami całkowitymi istnieje nieskończenie wiele wartości rzeczywistych, a więc do ich dokładnego zapisu potrzebnych byłoby nieskończenie wiele bitów istnieje szereg wartości, które nie mogą być zapisane w systemie liczba zero jest zapisywana dokładnie z definicji liczby dodatnie, mieszczą się w zakresie od 2 26 do 2 27, dla liczb większych mamy do czynienia z przepełnieniem dodatnim liczby ujemne, mieszczą się w zakresie od 2 27 do 2 26, dla liczb mniejszych mamy do czynienia z przepełnieniem ujemnym oznacza to, że istnieją wartości bliskie zera, których nie można zapisać; najmniejsza wartość dodatnia w znormalizowanej formie wynosi. 2 26 (niedomiar dodatni), analogiczna sytuacja ma miejsce dla wartości ujemnych w standardzie IEEE wartości bliskie zeru nie są normalizowane, dzięki czemu wykładnik może być równy zero, domyślna jedynka na lewej skrajnej pozycji części ułamkowej może być równa zero i mogą się pojawić poprzedzające zera

Notacja zmiennopozycyjna kolejność obliczeń może wpływać na dokładność wyniku mnożenie - dodaje się wykładniki i mnoży mantysy dzielenie - odejmuje się wykładniki i dzieli mantysy przy wykonywaniu ciągu obliczeń obejmującego dodawanie, odejmowanie, mnożenie i dzielenie, w pierwszej kolejności (o ile to możliwe) należy wykonać mnożenie i dzielenie (wpływ na dokładność) w celu sprawdzenia równości dwóch liczb zmiennopozycyjnych należy ustalić czy różnica pomiędzy nimi jest mniejsza od najmniejszego dopuszczalnego błędu

Inne dopuszczalne wartości ± liczba, w której zarówno wykładnik, jak i ułamek reprezentuje wartość zerową ± liczba, w której wykładnik składa się z samych jedynek, a ułamek z zer NaN liczba, w której wykładnik składa się z samych jedynek, a ułamek jest niezerowy

Notacja z nadmiarem osiem 7 6 2 5 3 4 4 3 5 2 6 7 8 ( + )

Notacja z nadmiarem cztery (z ciągami trzybitowymi) 3 2 2 3 4 ( + )

Notacja zmiennopozycyjna pole wykladnika bit znaku pole czesci ulamkowej mantysa

Notacja zmiennopozycyjna. () 2 (2) (2) liczba nieujemna. (3) (4) (4). 2 3/ 4

Notacja zmiennopozycyjna / 8.?

Notacja zmiennopozycyjna 3 / 8. ZLE DOBRZE

Błędy zaokrąglenia 2 5/ 8. 2 / 2 nieujemna 2

Kolejność dodawania 2 / + 2 / 8 + / 8 +.... +... (2/ 2 ). (2/ 2 )

Kolejność dodawania / 8 + / 8 + 2 / 2 +.... +... ( / 4 ). (2 3/ 4 )

Przykład x=.; while(+x>) x/=2; JAVA C PYTHON x.22e 6.22e 6.22e 6 MIN DOUBLE 4.9E 324 2.2257e 38 2.2257e 38

Przykład 2 double c=.39e7; double d=.2e-7; c+d=39,2

Przykład 2 double c=.39e7; double d=.2e-7; c+d=39,2 double e=.39e8; double f=.2e-8; e+f=39,

Przykład 2 double c=.39e7; double d=.2e-7; c+d=39,2 double e=.39e8; double f=.2e-8; e+f=39, double a=.39e4; double b=.2e-3; a+b=39,

Przykład 2 double c=.39e7; double d=.2e-7; c+d=39,2 double e=.39e8; double f=.2e-8; e+f=39, double a=.39e4; double b=.2e-3; a+b=39, double g=.39e8; double h=.2e8; g+h=259,

Przykład 3 Dana jest 32-bitowa wartość przedstawiona w postaci binarnej: Jaką wartość reprezentuje???

Przykład 3 Dana jest 32-bitowa wartość przedstawiona w postaci binarnej: Jaką wartość reprezentuje??? To zależy od interpretacji!!! Typ Wartość 32-bitowa liczba całkowita 735 59 65 6-bitowa liczba całkowita 26 476 i 28 54 cztery znaki glob liczba zmiennoprzecinkowa.6533 24

Przykład 3a int i; scanf( %d,&i); printf( i=%d\n,i); scanf( %lf,&i); printf( i=%d\n,i); printf( i=%lf\n,i);

Przykład 3a int i; scanf( %d,&i); 3 printf( i=%d\n,i); scanf( %lf,&i); 3 printf( i=%d\n,i); printf( i=%lf\n,i);

Przykład 3a int i; scanf( %d,&i); 3 printf( i=%d\n,i); i=3 scanf( %lf,&i); 3 printf( i=%d\n,i); printf( i=%lf\n,i);

Przykład 3a int i; scanf( %d,&i); 3 printf( i=%d\n,i); i=3 scanf( %lf,&i); 3 printf( i=%d\n,i); i= printf( i=%lf\n,i);

Przykład 3a int i; scanf( %d,&i); 3 printf( i=%d\n,i); i=3 scanf( %lf,&i); 3 printf( i=%d\n,i); i= printf( i=%lf\n,i); i=.

Kodowanie znaków www.unicode.com Unicode 6.. pozwala na zapis znaków ze wszystkich pisanych języków świata, w tym ideogramów, a także innych znaków np. emotikonów

Kodowanie znaków www.unicode.com Unicode 6.. pozwala na zapis znaków ze wszystkich pisanych języków świata, w tym ideogramów, a także innych znaków np. emotikonów np. \u27 \ub5 µ \ub ± \u5a Ś \u27fa