Kod U2 Opracował: Andrzej Nowak

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

Zapis liczb binarnych ze znakiem

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

Systemy zapisu liczb.

Pracownia Komputerowa wykład V

Operacje arytmetyczne

1.1. Pozycyjne systemy liczbowe

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

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

SYSTEMY LICZBOWE 275,538 =

Pracownia Komputerowa wyk ad V

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

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

Podstawy Informatyki

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Arytmetyka liczb binarnych

Stan wysoki (H) i stan niski (L)

Wprowadzenie do informatyki - ć wiczenia

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Pracownia Komputerowa wykład IV

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

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Pracownia Komputerowa wykład VI

Metoda znak-moduł (ZM)

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

Arytmetyka binarna - wykład 6

Pracownia Komputerowa wyk ad IV

Techniki multimedialne

L6.1 Systemy liczenia stosowane w informatyce

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

Pracownia Komputerowa wyk ad VI

Arytmetyka stałopozycyjna

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

Kodowanie liczb całkowitych w systemach komputerowych

Naturalny kod binarny (NKB)

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

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

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

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

Systemy liczbowe używane w technice komputerowej

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

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

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

1. Operacje logiczne A B A OR B

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

Technologie Informacyjne

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

Architektura komputerów

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

Technika Cyfrowa i Mikroprocesorowa

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

Wstęp do informatyki- wykład 2

Wstęp do Informatyki

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

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

Luty 2001 Algorytmy (7) 2000/2001

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

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

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

System Liczbowe. Szesnastkowy ( heksadecymalny)

...o. 2. ZARYS ORGANIZACJI MASZYNY TYPOWEJ

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

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

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

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

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

Systemy liczenia. 333= 3*100+3*10+3*1

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

DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.

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

Operacje arytmetyczne w systemie dwójkowym

Cyfrowy zapis informacji

ARYTMETYKA KOMPUTERA

LISTA 1 ZADANIE 1 a) 41 x =5 podnosimy obustronnie do kwadratu i otrzymujemy: 41 x =5 x 5 x przechodzimy na system dziesiętny: 4x 1 1=25 4x =24

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

Programowanie Niskopoziomowe

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

Podstawy Informatyki

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Metody numeryczne II. Reprezentacja liczb

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.

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

Wprowadzenie do informatyki - ć wiczenia

Wprowadzenie do informatyki - ć wiczenia

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

PODSTAWY INFORMATYKI. Informatyka? - definicja

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

Teoretyczne Podstawy Informatyki

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

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

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Podstawy Informatyki dla Nauczyciela

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

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

DZIESIĘTNY SYSTEM LICZBOWY

Transkrypt:

PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim rozdziale nie jest zbyt wygodny dla obliczeń maszynowych. Już przy tak prostych operacjach jak dodawanie i odejmowanie musimy stosować dodatkową logikę obsługi znaków, aby otrzymywać poprawne wyniki. Dlatego w obliczeniach komputerowych bardziej popularny jest inny system, zwany systemem uzupełnień do dwóch (w skrócie U2) lub uzupełnień do podstawy (w literaturze angielskiej nosi on nazwę Two's Complement Numbering System). Idea systemu U2 nie jest nowa - wymyślił ją już Blaise Pascal, znany francuski fizyk i matematyk, który skonstruował w 1652 roku prostą maszynę arytmetyczną zdolną dodawać liczby dziesiętne. Aby umożliwić również odejmowanie liczb, Pascal wprowadził tzw. uzupełnienie do podstawy 10. Otrzymujemy je odejmując daną liczbę od podstawy podniesionej do potęgi równej największej ilości cyfr dodawanych liczb. Np. dla liczb z zakresu od 0..99 będziemy odejmować od 100-10 2, dla liczb z zakresu od 0..999 od 1000-10 3 itd. Chcemy wykonać odejmowanie: 56-27. W tym celu obliczamy uzupełnienie do podstawy 10 liczby 27: - 27 = 100-27 = 73 (U10) Teraz wykonujemy dodawanie liczby 56 oraz uzupełnienia 73 (U10) : 56 + 73 (U10) = 129 Odrzucamy najstarszą jedynkę i mamy wynik 29. Zgadza się? /Pascal też był z tego zadowolony./ Na identycznej zasadzie utworzono system uzupełnień do podstawy U2. W systemie tym waga pozycji najstarszego bitu jest ujemna. Jeśli bit na tej pozycji będzie miał wartość 0, to otrzymamy liczbę dodatnią,

której wartość określają pozostałe bity. Gdy bit znaku przyjmie wartość 1, to liczba będzie ujemna. Wartość liczby obliczymy jako sumę wagi pozycji najstarszego bitu (jest ujemna) oraz pozostałej części liczby. Wzór obliczeniowy jest następujący: W U2 = c n-1 x (- p n-1 ) + c n-2 x p n-2 +... + c 1 x p 1 + c 0 x p 0 Obliczmy dla przykładu wartość liczb 4 bitowych w kodzie U2: 0101 (U2) = 0 x (- 2 3 ) + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 0101 (U2) = 0 x (- 8) + 1 x 4 + 0 x 2 + 1 x 1 0101 (U2) = 0 + 4 + 1 0101 (U2) = 5 1101 (U2) = 1 x (- 2 3 ) + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 1101 (U2) = 1 x (- 8) + 1 x 4 + 0 x 2 + 1 x 1 1101 (U2) = (- 8) + 4 + 1 1101 (U2) = - 8 + 5 1101 (U2) = - 3 Zapamiętaj Wartość liczby w kodzie U2 obliczamy bardzo podobnie do wartości liczby w naturalnym kodzie dwójkowym. Musimy tylko pamiętać, że waga najstarszej pozycji (pozycji znakowej) jest ujemna. Dla n bitowej liczby U2 możemy zapisać wzór: W U2 = c n-1 x (- 2 n-1 ) + wartość reszty liczby w kodzie NBC Zakres liczb w kodzie U2 Największą liczbę w kodzie U2 otrzymamy, gdy bit znaku przyjmie wartość 0 (liczba dodatnia), a reszta cyfr będzie składała się z samych jedynek. Reszta cyfr tworzy największą liczbę n-1 bitową w naturalnym kodzie binarnym, wobec tego: Z U2max = 2 n-1-1 Najmniejszą liczbę w kodzie U2 otrzymamy dla bitu znaku równego 1 (liczba ujemna) oraz pozostałych bitów równych zero. Z U2min =-2 n-1

zakres n-bitowej liczby w kodzie U2 Z U2 = <-2 n-1, 2 n-1-1> Obliczmy zakres 4 bitowych liczb w kodzie U2: Z U2max = 2 4-1 - 1 = 2 3-1 = 8-1 = 7 Z U2min = -2 4-1 = -2 3 = -8 Dla czterech bitów Z U2 = <-8, 7> Obliczanie wartości przeciwnej w kodzie U2 Wartość przeciwna ma tą samą wartość bezwzględną, lecz znak przeciwny. W kodzie U2 obliczamy ją następująco: ZAPAMIĘTAJ Aby znaleźć wartość przeciwną do danej w kodzie U2, wykonaj następujące dwie operacje: zmień wszystkie bity liczby na przeciwne (możesz wykorzystać do tego celu operację logiczną NOT). do tak uzyskanej liczby dodaj 1 Oblicz wartość przeciwną do liczby 0011 (U2) = 3: Sprawdzenie 1101 (U2) = 1 x (-2 3 ) + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 1101 (U2) = 1 x (-8) + 1 x 4 + 0 x 2 + 1 x 1 1101 (U2) = -8 + 4 + 1 1101 (U2) = -3

Znajdowanie reprezentacji liczby w kodzie U2 Mamy wartość dziesiętną W i chcemy zapisać ją w n-bitowym kodzie U2. Najpierw musimy sprawdzić, czy zakres liczb U2 obejmuje wartość W. Jeśli tak, to: Dla W nieujemnego obliczamy liczbę dwójkową o tej wartości, a następnie dopełniamy ją zerami do formatu n-bitowego. Dla W ujemnego obliczamy uzupełnienie do podstawy 2 o wartości 2 n + W. Wynik kodujemy binarnie i otrzymujemy liczbę ujemną w kodzie U2. Znaleźć zapis liczby 92 w 8 bitowym kodzie U2. Liczba jest dodatnia, więc znajdujemy jej zapis binarny: 92 = 01011100 (U2 Znaleźć zapis liczby -107 w 8 bitowym kodzie U2: Liczba jest ujemna, więc najpierw obliczamy jej dopełnienie do podstawy: U = 2 n + W = 2 8-107 = 256-107 = 149-107 = 10010101 (U2)

Arytmetyka liczb w kodzie U2 Dodawanie i odejmowanie Zasady dodawania i odejmowania liczb w kodzie U2 nie różnią się od zasad wykonywania tych działań arytmetycznych w zwykłym systemie binarnym, co jest niewątpliwą zaletą kodu U2. Otrzymaliśmy poprawne wyniki operacji bez sprawdzania znaków przetwarzanych liczb. Jest to bardzo dużą zaletą kodu U2, dzięki której obliczenia są szybkie i sprawne. Zapamiętaj W systemie U2 dodawanie i odejmowanie wykonujemy wg poznanych zasad dla naturalnego kodu dwójkowego. Przeniesienia i pożyczki poza bit znaku ignorujemy. Mnożenie Mnożenie liczb w kodzie U2 różni się nieco od standardowego mnożenia liczb binarnych. Przed wykonaniem tej operacji arytmetycznej musimy rozszerzyć znakowo obie mnożone liczby tak, aby ich długość (liczba bitów) wzrosła dwukrotnie (jeśli są różnej długości, to rozszerzamy znakowo względem dłuższej liczby). Rozszerzenie znakowe polega na powielaniu bitu znaku na wszystkie dodane bity. Np.: 0111 (U2) = 0000 0111 (U2) - rozszerzyliśmy znakowo liczbę 4 bitową do 8 bitowej 1011 (U2) = 1111 1011 (U2) - to samo dla liczby ujemnej. Rozszerzenie znakowe nie zmienia wartości liczby w kodzie U2. Po wykonaniu rozszerzenia znakowego liczby mnożymy wg poznanych już zasad. Dla przykładu pomnóżmy (-2) x 3: -2 = 1110 (U2) = 1111 1110 (U2) 3 = 0011 (U2) = 0000 0011 (U2)

Wynik mnożenia może być liczbą o długości równej sumie długości mnożonych liczb. Dlatego bity wykraczające w naszym przykładzie poza 8 bitów ignorujemy. Pozostałe 8 bitów określa w kodzie U2 liczbę -6. Dzielenie Najprostszym rozwiązaniem jest zapamiętanie znaków dzielonych liczb, zamiana ich na liczby dodatnie, dokonanie dzielenia dla liczb naturalnych, a następnie zmiana znaku wyniku, jeśli znaki dzielnej i dzielnika różnią się.