Arytmetyka binarna - wykład 6

Podobne dokumenty
Naturalny kod binarny (NKB)

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

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Pracownia Komputerowa wykład VI

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

Teoretyczne Podstawy Informatyki

Kodowanie liczb całkowitych w systemach komputerowych

Stan wysoki (H) i stan niski (L)

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

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

Podstawy Informatyki

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

Podstawy Informatyki

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Cyfrowy zapis informacji

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

Arytmetyka stałopozycyjna

Technologie Informacyjne

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

Systemy zapisu liczb.

Technologie Informacyjne Wykład 4

Zapis liczb binarnych ze znakiem

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

Pracownia Komputerowa wykład V

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Kodowanie informacji. Kody liczbowe

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Arytmetyka stało i zmiennoprzecinkowa

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

Pracownia Komputerowa wyk ad VI

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Kod U2 Opracował: Andrzej Nowak

Wprowadzenie do informatyki - ć wiczenia

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

LICZBY ZMIENNOPRZECINKOWE

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

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

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

Metoda znak-moduł (ZM)

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

Architektura komputerów

Operacje arytmetyczne

Arytmetyka liczb binarnych

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

SYSTEMY LICZBOWE 275,538 =

1.1. Pozycyjne systemy liczbowe

Adam Korzeniewski p Katedra Systemów Multimedialnych

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Pozycyjny system liczbowy

Adam Korzeniewski p Katedra Systemów Multimedialnych

Funkcja Boolowska a kombinacyjny blok funkcjonalny

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

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

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

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

LICZBY ZMIENNOPRZECINKOWE

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

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

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

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

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

Architektura komputerów

Pracownia Komputerowa wyk ad V

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Architektura komputerów

Wprowadzenie do informatyki - ć wiczenia

Pracownia Komputerowa wykład IV

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

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

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

Wprowadzenie do informatyki - ć wiczenia

Wstęp do Informatyki

Wstęp do Informatyki. Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Kombinacyjne bloki funkcjonalne - wykład 3

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

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

Programowanie Niskopoziomowe

Materiały laboratoryjne. Kodowanie i liczby. dr inż. Zbigniew Zakrzewski. Z.Z. Podstawy informatyki

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

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

przeniesienie pożyczka

Arytmetyka stało- i zmiennoprzecinkowa. 1. Informacje wstępne

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Informatyka 1. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

architektura komputerów w. 2

Architektura systemów komputerowych

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

Pracownia Komputerowa wyk ad IV

DZIESIĘTNY SYSTEM LICZBOWY

Informatyka 1. Wykład nr 4 ( ) Plan wykładu nr 4. Politechnika Białostocka. - Wydział Elektryczny

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Układy kombinacyjne 1

Transkrypt:

SWB - Arytmetyka binarna - wykład 6 asz 1 Arytmetyka binarna - wykład 6 Adam Szmigielski aszmigie@pjwstk.edu.pl

SWB - Arytmetyka binarna - wykład 6 asz 2 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2 1 0 wartość 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 wartość 128 64 32 16 8 4 2 1 bity b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 System pozycyjny o podstawie systemu2 Liczby określone są bez znaku Wartość liczby binarnej (N- długość słowa kodowego) Wartosc= N 1 i=0 2i b i Wartość cyfry zależy od pozycjib i =2 i (numerowanie od zera) 2 N różnych wartości kodu (kod pełny)

SWB - Arytmetyka binarna - wykład 6 asz 3 Sumowanie 76 10 0 1 0 0 1 1 0 0 188 10 + 0 1 1 1 0 1 1 0 194 10 = 1 1 0 0 0 0 1 0 przeniesienie 0 1 1 1 1 1 0 0 Sumowanie dwóch a, b bitów: a i,b i,c i s i,c i+1 (c - przeniesienie,s-wynik sumowania)

SWB - Arytmetyka binarna - wykład 6 asz 4 Przekroczenie zakresu 152 10 1 0 0 1 1 0 0 0 118 10 + 0 1 1 1 0 1 1 0 14 10? = 0 0 0 0 1 1 1 0 przeniesienie 1 1 1 1 0 0 0 0 Przeniesienie z najstarszego bitu (c N 1 =1) oznacza przekroczenie zakresu dla słowan-bitowego, Alternatywnie: Wystąpienie przeniesienia oznacza, że wynik jest liczbą bitową o długościn+1. Przeniesienie bitu należy wówczas traktować jako N+1bit wyniku.

SWB - Arytmetyka binarna - wykład 6 asz 5 Reprezentacja "znak-moduł" ZM Najstarszy bit słowab N 1 (MSB - ang. Most Significant Bit) pełni rolę znaku (tj. jeślib N 1 =1 to liczna jest ujemna, gdyb N 1 =0 dodatnia) np.: 24 10 = 1 0 0 1 1 0 0 0 118 10 = 0 1 1 1 0 1 1 0 14 10 = 1 0 0 0 1 1 1 0 wrtosc=( 1) b N 1 N 2 i=0 2i b i Ze względu na najstarszy bit kod nie jest wagowy, zakres kodu< (2 N 1 1),2 N 1 1>, 2 N 1kombinacji - zero posiadałoby dwie reprezentacje (kombinacja 10000000 (minus zero) jest zabroniona), Kłopotliwe sprawdzanie bitu znaku i wykonywanie operacji na modułach, Idea bitu znaku jest wykorzystywana w innych reprezentacjach (np. w eksponencie liczb zmiennoprzecinkowych).

SWB - Arytmetyka binarna - wykład 6 asz 6 kod uzupełnień do 1 (U1) (ang. 1 s complement) W zapisie tym najbardziej znaczący bit jest także bitem znaku (0 liczba dodatnia, 1 liczba ujemna), ale w zależności od jego wartości dalsze bity zapisu maja różne znaczenie, Jeśli bit znaku jest 0 (liczba dodatnia), to dalsze bity reprezentują liczby dodatnie w ZM, Natomiast gdy bit znaku jest 1 (liczba ujemna), to dalsze bity reprezentują moduł liczby ujemnej, w taki sposób, że zanegowane ich wartości odpowiadają modułowi tej liczby w kodzie ZM, Zapis U1 dla liczb dodatnich jest taki sam jak zapis ZM, Różnice w zapisie występują jedynie dla liczb ujemnych, Zakres liczb tego zapisu jest taki sam jak dla zapisu ZM.

SWB - Arytmetyka binarna - wykład 6 asz 7 Kod uzupełnień do 1 W zapisie U1 występują także dwie reprezentacje zera:000000...00 i 111111...11, Sposób przeliczenia liczby ujemnej w zapisie ZM na zapis U1: Zanegować bity oznaczające moduł liczby (bit znaku pozostaje 1). Np. dla liczb 8-bitowych: zapis ZM: 11010110 (dziesiętnie -86) zapis U1: 10101001

SWB - Arytmetyka binarna - wykład 6 asz 8 Kod uzupełnień do 2 (U2) (ang. 2 s complement) Najstarszy bit MSB ma wartość ujemną pozostałe bity są dodatnie tj.: wartosc= 2 N 1 b N 1 + N 2 i=0 2 i b i Najstarszy bit identyfikuje czy liczba jest dodatnia czy ujemna, Zakres kodu:< 2 N 1,2 N 1 1>, 2 N kombinacji (kod pełny), zero ma tylko jedną reprezentację, Liczby dodatnie z przedziału<0,2 N 1 1> mają identyczną reprezentacje w U2 co w NKB, tj.: (0,b N 2,...,b 1,b 0 ) U2 = N 2 i=0 2i b i kod wagowy, najstarszy bit na wartość ujemną. Liczby ujemne można interpretować jako sumę: (1,b N 2,...,b 1,b 0 ) U2 = 2 N 1 + N 2 i=0 2i b i

SWB - Arytmetyka binarna - wykład 6 asz 9 wada koduu2: zakres kodu jest niesymetryczny, negacja liczby 2 N 1 prowadzi do błędu (np. dlan=128 liczba 128 mieści się w zakresie, ale 128 już nie), Przekroczenie zakresu przy sumowaniu, np. dlan=8: (127) U2 +(4) U2 =( 125) U2 - błąd, Inkrementacja liczby127 daje wynik 128.

SWB - Arytmetyka binarna - wykład 6 asz 10 Negowanie liczb w kodzie U2 (wartosc) U2 =(wartosc) U2 +1 Aby obliczyć liczbę przeciwną do danej w kodzieu2 należy zanegować wszystkie bity i do wyniku dodać jedynkę np.: 7 10 (00000111) negacja bitów (11111000) dodać bit + (00000001) wynik 7 10 = (11111001) U2

SWB - Arytmetyka binarna - wykład 6 asz 11 Dodawanie i odejmowanie w kodzie U2 Dodawanie wykonywane jak w NKB, niezależnie od znaków argumentów Wartość przeniesienia z najstarszego bitu jest ignorowana, Przekroczenie zakresu może wystąpić w dwóch przypadkach: gdy suma dwóch liczb dodatnich przekracza zakres, gdy suma dwóch liczb ujemnych przekracza zakres, Odejmowanie wu2 - dodanie negacji odjemnika tj.: a b=a+( b) - wystarczą operacje negowania i dodawania.

SWB - Arytmetyka binarna - wykład 6 asz 12 Odejmowanie w kodzie U2 - przykłady Sumowanie liczby dodatniej i ujemnej - wynik dodatni, 25+( 1): 25: 00011001 1: + 11111111 (c 7 =1): = 00011000 U2 =24 10 Sumowanie liczby dodatniej i ujemnej - wynik ujemny 25+( 56): 25: 00011001 56: + 11001000 (c 7 =0): = 11100001 U2 = 31 10

SWB - Arytmetyka binarna - wykład 6 asz 13 Dodawanie w kodzie U2 - przykłady Sumowanie dwóch liczb dodatnich bez przekroczenia zakresu, 25+1: 25: 00011001 +1: + 00000001 (c 7 =0): = 00011010 U2 =26 10 Sumowanie dwóch liczb ujemnych bez przekroczenia zakresu, ( 25)+( 56): 25: 11100111 56: + 11001000 (c 7 =1): = 10101111 U2 = 81 10

SWB - Arytmetyka binarna - wykład 6 asz 14 Przekroczenie zakresu w kodzie U2 - przykłady Sumowanie dwóch liczb dodatnich z przekroczeniem zakresu, 112+113: 112: 01110000 113: + 01110001 (c 7 =0,c 6 =1): = 11100001 - przekroczeniem zakresu Sumowanie dwóch liczb ujemnych z przekroczeniem zakresu, ( 75)+( 56): 75: 10110101 56: + 11001000 (c 7 =1,c 6 =0): = 01111101 - przekroczeniem zakresu

SWB - Arytmetyka binarna - wykład 6 asz 15 Sprzętowe wykrywanie przekroczenia zakresu wu2 Przekroczenie zakresu w U2 można zidentyfikować analizując przeniesienia: przychodzącec IN i generowanec OUT przez najstarszy bit, Przekroczenie zakresu występuje wtedy i tylko wtedy, gdy oba przeniesieniac IN ic OUT są przeciwnego znaku.

SWB - Arytmetyka binarna - wykład 6 asz 16 Kod BCD Packed Binary Coded Decimal w dwóch tetrada przechowywane są dwie cyfry dziesiętne(0,...,9) wartość 80 40 20 10 8 4 2 1 bity b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 wartosc = 7 104 2 i imod4 b i i=0 np.00111001=39 HEX 39 10, Kod niepełny -2 8 10 4 =156 kombinacji zabronionych, Używany ze względu na prostotę konwersji liczb zapisanych dziesiętnie.

SWB - Arytmetyka binarna - wykład 6 asz 17 Reprezentacja liczb rzeczywistych Reprezentacja stałoprzecinkowa (ang. fixed point) Reprezentacja zmiennoprzecinkowa (ang. floating point)

SWB - Arytmetyka binarna - wykład 6 asz 18 Reprezentacja stałoprzecinkowa W sposób arbitralny przyjmuje się, że część słowa jest częścia całkowita, a pozostała część słowa część ułamkowa, Przykładowo, dla słowa ośmiobitowego przyjmijmy część całkowitą jako5bitów a część ułamkową jako3bity: pozycja: 7 6 5 4 3 2 1 0 wartość: 2 4 2 3 2 2 2 1 2 0 2 1 2 2 2 3 wartość: 16 8 4 2 1 1 2 1 4 1 8 bity: b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0

SWB - Arytmetyka binarna - wykład 6 asz 19 Reprezentacja stałoprzecinkowa Liczby stałoprzecinkowe można również interpretować w kodach U1,U2 czyzm - najstarszy bit będzie miał znaczenie jak w tych kodowaniach, Kodowanie stałoprzecinkowe może powodować błąd, Dokładność kodowania zależna jest od długości słowa, Niektóre liczby całkowite i wymierne nie mają swojej dokładnej reprezantacji w skończonym kodowaniu, Liczby niewymierne zawsze kodowane są z błędem.

SWB - Arytmetyka binarna - wykład 6 asz 20 Reprezentacja stałoprzecinkowa - przykład Podtrzymując założenie że,5najstarszych bitów przeznaczone jest na część całkowita a pozostałe3bity na część ułamkowa. Dodatkowo przyjmujemy, że liczba jest zapisana w kodzie U2: wartość: 2 4 2 3 2 2 2 1 2 0 2 1 2 2 2 3 wartość: 16 8 4 2 1 1 2 1 4 1 8 Przykładowy ciąg bitów11001110 jest wówczas równy: 16+(8+1+ 1 2 +1 4 )= 61 4, Zakres reprezentowanych liczb mieści się w przedziale < 16,15 7 8 >, Liczby rzeczywiste są reprezentowane z błędem nie większym od 1 8.

SWB - Arytmetyka binarna - wykład 6 asz 21 Reprezentacja zmiennoprzecinkowa Liczba zmiennoprzecinkowa jest reprezentowana jako mantysa i eksponent przy podstawie2: mantysa 2 wykladnik Mantysa może mieć różne interpretacje (co może być przyczyną nieporozumień), Eksponent jest liczbą całkowitą dodatnią albo ujemną. Mnożeniu lub dzieleniu przez2odpowiada przesuwanie przecinka odpowiednio w prawo i lewo.

SWB - Arytmetyka binarna - wykład 6 asz 22 Standard reprezentacja zmiennoprzecinkowej IEEE 754 Standard IEEE 754 reguluje: format zapisu, sposób konwersji z danego formatu, algorytmy zaokrąglające, operacje arytmetyczne i obsługę wyjątków (np. dzielenie przez zero), Przykład Standard IEEE 754-1985 Wartosc=( 1) znak 2 eksponent stala (1+ulamek) Mantysa w kodzie ZM jest ułamkiem. Najbardziej znaczący bit zawsze =1 nie zapisywany (jest pomijany), Eksponent Od liczby zapisanej kodzie NKB odejmuje się stałą wartość (połowa zakresu NKB). W ten sposób mogą eksponent może przyjmować wartości ujemne i dodatnie.

SWB - Arytmetyka binarna - wykład 6 asz 23 Zadania na ćwiczenia 1. Zbuduj z bramek NAND sumator jednobitowy. Sprawdź jego działanie. 2. Za pomocą sumatora czterobitowego przeprowadź operację sumowania dwóch czterobitowych liczb dwójkowych a. Wynik zinterpretuj w kodzie NKB iu2, 3. Za pomocą sumatora czterobitowego wykonaj sumowanie liczb w kodzie U2 takie, że: suma dwóch liczb dodatnich powoduje przekroczenie zakresu, suma dwóch liczb ujemnych powoduje przekroczenie zakresu. Odczytaj i zinterpretuj otrzymany wynik. 4. Dla przypadków z poprzedniego punktu zrealizuj układ identyfikujący przekroczenie zakresu. Układ powinien również sprawdzać, czy przepełnienie wystąpiło wskutek sumowania dwóch liczb dodatnich czy ujemnych. a wskazanych przez prowadzącego

SWB - Arytmetyka binarna - wykład 6 asz 24 5. Posługując się kodem U2 zaproponuj sposób reprezentacji liczb z częścią ułamkową na ośmiu bitach. Określ przedział, który może być reprezentowany oraz dokładność reprezentacji. Za pomocą sumatora8-bitowego wykonaj sumowanie dwóch liczb b. Określ błąd reprezentacji obu liczb oraz wyniku. b wskazanych przez prowadzącego