Liczby całkowite dodatnie BCN

Slides:



Advertisements
Podobne prezentacje
Kod Hamminga Podstawy Telekomunikacji Autor: Paweł Zajdel
Advertisements

Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Operacje zmiennoprzecinkowe
Metody numeryczne Wykład no 1.
Liczby w Komputerze Zajęcia 3.
Architektura Systemów Komputerowych
Liczby wokół nas A. Cedzidło.
Wykład 2: Liczby rzeczywiste (stało i zmiennoprzecinkowe) Koprocesor
Przetwarzanie informacji
B. znaki alfabetu D. obrazy
Systemy liczbowe w architekturze komputerów materiał do wykładu 1/3
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
SYSTEMY LICZBOWE.
Liczby całkowite.
ARCHITEKTURA KOMPUTERÓW Dr inż. Tadeusz POPKOWSKI A.D. 2007
ARCHITEKTURA WEWNĘTRZNA KOMPUTERA
dr Anna Kwiatkowska Instytut Informatyki
Zapis informacji Dr Anna Kwiatkowska.
Reprezentacje - zmiennoprzecinkowa
SYSTEMY LICZBOWE Rodzaje informacji (analogowe i cyfrowe)
Elektronika cyfrowa i mikroprocesory
Systemy liczbowe.
„Są plusy dodatnie i plusy ujemne.”
Kod Graya.
wyrażenia algebraiczne
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
opracowanie: Agata Idczak
Ciąg liczbowy Ciąg arytmetyczny Ciąg geometryczny
Informatyka I Język ANSI C
Wyrażenia algebraiczne
Cyfrowe układy logiczne
Podstawy informatyki (2)
Reprezentacja stało i zmiennopozycjna
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
Architektura komputerów
ZASADY PODZIAŁU SIECI NA PODSIECI, OBLICZANIA ADRESÓW PODSIECI,
Systemy Liczenia - I Przez system liczbowy rozumiemy sposób zapisywania i nazywania liczb. Rozróżniamy: pozycyjne systemy liczbowe i addytywne systemy.
Architektura systemów komputerowych
Systemy Liczbowe (technika cyfrowa)
  Prof.. dr hab.. Janusz A. Dobrowolski Instytut Systemów Elektronicznych, Politechnika Warszawska.
Posługiwanie się systemami liczenia
Podstawy informatyki 2013/2014
Źródła błędów w obliczeniach numerycznych
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Matematyka i system dwójkowy
Reprezentacja liczb w systemie binarnym ułamki i liczby ujemne
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Algorytmika Iteracje autor: Tadeusz Lachawiec.
Podstawy arytmetyki komputerowej Paweł Perekietka
Programowanie Niskopoziomowe
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Dwójkowy system liczbowy
Działania w systemie binarnym
Podstawy Techniki Cyfrowej
Systemy liczenia IV Kodowanie i kody Danuta Stanek.
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
Wybrane aspekty programowania w C++ (i nie tylko)
Zasady arytmetyki dwójkowej
METODY REPREZENTOWANIA IFORMACJI
INFORMATYKA Zajęcia organizacyjne Arytmetyka komputerowa
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
Liczby całkowite Definicja Działania na liczbach całkowitych Cechy podzielności Potęga.
Liczby naturalne i całkowite Spis treści Definicje Działania na liczbach Wielokrotności liczb naturalnych Cechy podzielności Przykłady potęg,potęgi o.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
URZĄDZENIA TECHNIKI KOMPUTEROWEJ Zapis liczb binarnych ze znakiem.
Technika Mikroprocesorowa 1
Jednomany.
Wstęp do Informatyki - Wykład 6
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Liczby całkowite dodatnie BCN 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10

Liczby całkowite w kodzie (znak moduł) ZM

Zakres ZM min(ZM) = (-1) × (2n-2 + 2n-3 + ...22 + 21 + 20) = -2n-1 + 1 max(ZM) = 1 × (2n-2 + 2n-3 + ...22 + 21 + 20) = 2n-1 - 1 Dla n=4 od -7 do 7

Nadmiar i niedomiar w ZM

Wady ZM 1Koncepcyjnie prosty, lecz stwarza poważne problem problemy przy wykonywaniu operacji arytmetycznych 2Bit znakowy posiada zupełnie inne znaczenie od pozostałych bitów i nie uczestniczy bezpośrednio w operacjach arytmetycznych. 3 Niejednoznaczność!!! - wartość 0 posiada dwie reprezentacje kodowe: 0000 oraz 1000

kod U2 Kod U2 ułatwia realizację podstawowych operacji arytmetycznych, gdyż nie wymaga osobnego obsługiwania bitu znaku

01101011(U2) = 64 + 32 + 8 + 2 + 1 = 107(10). 11101011(U2) = (-27) + 64 + 32 + 8 + 2 + 1 = = -128 + 107 = (-21)(10).

procedura wyznaczania liczby przeciwnej w kodzie U2 Przejść do pierwszego od prawej strony bitu liczby. Do wyniku przepisać kolejne bity 0, aż do napotkania bitu o wartości 1, który również przepisać. Wszystkie pozostałe bity przepisać zmieniając ich wartość na przeciwną.

Przykład 10010100001000000(U2) 10010100001000000 01101011111000000

Przykład Wyznaczyć 8-mio bitowy kod U2 dla liczby dziesiętnej (-45)(10). Wyznaczamy kod binarny liczby przeciwnej: 45(10) = 101101(2) Kod uzupełniamy dwoma bitami 0 do wymaganej długości 8 bitów: 00101101. Wyznaczamy liczbę przeciwną : 00101101(U2)  11010011(U2). (-45)(10) = 11010011(U2)

Zakres n bitowych liczb U2 Największa liczba U2 powstaje dla bitu znaku równego 0, a pozostałych bitów równych 1. Ponieważ pozostałe bity przedstawiają wartość w naturalnym kodzie binarnym i jest ich n-1, to max(U2) = 2n-1 - 1 Najmniejszą wartość liczby U2 otrzymamy dla bitu znaku równego 1, a pozostałych bitów równych 0. W tym przypadku wartość liczby jest równa wadze pozycji znakowej, czyli min(U2) = (-2n-1)

Dodawanie liczb U2 Liczby U2 dodajemy ignorując przeniesienia poza bit znaku:

Nadmiar i niedomiar w kodzie U2 U2 oparty na 4 bitach: Max 23-1=7 Min-23=-8

Systemy z nadmiarem wartość binarna słowa kodowego jest równa kodowanej liczbie pomniejszonej o pewną stałą zwaną nadmiarem (ang. bias).

Przykład Dla kodu z nadmiarem bias = 63(10) oblicz wartość słowa kodowego 00011111(BIAS=63).   00011111(BIAS=63) = 24 + 23 + 22 + 21 + 20 - 63 00011111(BIAS=63) = 16 + 8 + 4 + 2 + 1 - 63 00011111(BIAS=63) = 31 - 63 00011111(BIAS=63) = (-32)(10).

Zakres kodowania z nadmiarem min(BIAS) = 0...0(BIAS) = - bias max(BIAS) = 1...1(BIAS) = 2n - 1 – bias Np. BIAS=2, n=3 Od -2 do 5

Dodawanie liczb z nadmiarem c1 (BIAS) = liczba1 + bias c2 (BIAS) = liczba2 + bias c1 (BIAS) + c2 (BIAS) = (liczba1 + liczba2) + 2*bias= = (liczba1 + liczba2) (BIAS)-bias

0011(BIAS=7) + 1010(BIAS=7) -4 3 bias -1

Zapis zmiennoprzecinkowy

Kod FP2 00100111(FP2) Mantysa +1+1/2+1/4=7/4 Cecha +2 Liczba +7/4*2^2=7

Zakres i precyzja Precyzja rośnie wraz ze wzrostem liczby bitów przeznaczonych na mantysę. Zakres rośnie wraz ze wzrostem liczby bitów przeznaczonych na wykładnik.

Arytmetyka liczb zmiennopozycyjnych mantysa sumy jest sumą mantys liczb wyjściowych po sprowadzeniu ich do wspólnej cechy (operacja ta nosi nazwę wyrównania cech liczb zmiennoprzecinkowych). Po wykonaniu operacji arytmetycznej mantysa wyniku jest sprowadzana do postaci znormalizowanej( z przedz. [1,2)) i zapamiętywana w kodzie liczby zmiennoprzecinkowej.

(0010 0100)(FP) + (0000 0110)(FP) c1 = 0010(U2) = 2, m1 = (01.00)(ZM) = 1 ( liczba 1x2^4=4) c2 = 0000(U2) = 0, m2 = (01.10)(ZM) = 11/2 (liczba 3/2x2^0 = 3/2) Wyrównujemy cechę (do c=0) c1 ’= 0000 m1‘= 0 100,00 Wynik normalizujemy m=0 1,01 (utracony ostatni bit) wynik (0010 0101)(FP) (=5) Zamiast 5,5

Dodawanie liczb zmiennopozycyjnych 1. Oblicz różnicę wykładników c1 - c2. Jeśli różnica ta jest różna od zera, to należy zrównać wykładnik c1 z c2. Bity mantysy m1przesuwamy o tyle miejsc, ile wynosi wartość bezwzględna różnicy wykładników. Kierunek przesunięcia określa znak różnicy - minus: przesunięcie w prawo, plus: przesunięcie w lewo. 2. Po zrównaniu wykładników mantysy dodajemy (lub odejmujemy) wg zasad obowiązujących dla liczb w kodzie znak-moduł. 3. Wynik dodawania (odejmowania) musi być znormalizowany

(1110 0110)(FP)* (0010 0100)(FP): c1 = 1110(U2) = -2, m1 = (0 1,10)(ZM) = 11/2 (liczba ma wartość dziesiętną 3/8) c2 = 0010(U2) = 2, m2 = (0 1,00)(ZM) = 1 (liczba ma wartość dziesiętną 4) Iloczyn mantys Suma cech (0000 0110)(FP)

Mnożenie liczb zmiennopozycyjnych Mantysa iloczynu jest równa iloczynowi mantys mnożonych liczb. Cecha iloczynu jest równa sumie cech mnożonych liczb. Po wykonaniu mnożenia wynik należy znormalizować.

Format IEEE 754 (32 bity cecha z nadmiarem bias=127, Mantysa ZM, znormalizowana (z [1,2)) pomijamy bit wiodący i podajemy tylko część ułamkową mantysy)

Precyzja arytmetyki

Rozważmy system kodowania w którym zarówno na cechę, jak i na mantysę, przeznaczono po dwa bity, Mantysa ZM, cecha BIAS=-1

Dla uproszczenia załóżmy x>0

Precyzja arytmetyki

Oszacowanie precyzji arytmetyki x = 1.0; while ( 1.0 + x > 1.0 ) x=x/2.0; end x 1.110223024625157e-016

Działania w arytmetyce fl x y liczby w arytmetyce fl fl(x,y) wynik działania w arytmetyce fl Precyzja arytmetyki

Jak dokładny może być dla danego zadania wynik policzony w arytmetyce fl? ciągła np. dodawanie: Realizacja algorytmu obliczania φ Zastąpienie danych liczbowych ich reprezentacjami Wykonanie operacji arytmetycznych i sprowadzenie wyniku do stosowanej reprezentacji! )

Niech A będzie pewnym algorytmem (w arytmetyce klasycznej czyli dokładnie) obliczania wyniku φ(d)=w Niech będą oszacowaniami błędu względnego reprezentacji danych i wyniku odpowiednio

Algorytm A nazywamy numerycznie poprawnym jeśli istnieją stałe Kd i Kw (wskaźniki kumulacji) takie, że dla dowolnych danych d przy dostatecznie silnej arytmetyce (duże t) istnieją dane takie, że (zaburzenie względne na poziomie ) oraz (zaburzenie wyniku na poziomie )

Algorytm A S=0 for k=1 to 3 S=S+ak*bk end Return S Rozważmy zaburzone dane:

Algorytm A S=0 for k=1 to n S=S+ak*bk end Return S Rozważmy zaburzone dane: W praktyce można żałożyć, że nie przekracza

W praktyce algorytm uznajemy za numerycznie poprawny, gdy wskaźnik kumulacji Jest na poziomie ilości działań potrzebnych do rozwiązania zadania Algorytm wyznaczania iloczynu skalarnego jest więc numerycznie poprawny