Mikroprocesorová technika (BMPT)



Podobné dokumenty
Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Struktura a architektura počítačů (BI-SAP) 5

3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Architektury počítačů

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

ČÍSELNÉ SOUSTAVY PŘEVODY

Číselné soustavy a převody mezi nimi

Číslo materiálu. Datum tvorby Srpen 2012

Čísla a číselné soustavy.

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Fz =a z + a z +...+a z +a z =

v aritmetické jednotce počíta

Principy počítačů I Reprezentace dat

Algoritmy a datové struktury

Číselné soustavy. Binární číselná soustava

Aritmetické operace a obvody pro jejich realizaci

Informatika Datové formáty

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

MATA Př 3. Číselné soustavy. Desítková soustava (dekadická) základ 10, číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Převody mezi číselnými soustavami

Čísla, reprezentace, zjednodušené výpočty

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Principy počítačů. Prof. RNDr. Peter Mikulecký, PhD.

Kódováni dat. Kódy používané pro strojové operace

Čísla, reprezentace, zjednodušené výpočty

Čísla v počítači Výpočetní technika I

ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

ČÍSELNÉ SOUSTAVY. Číselnou soustavu, která pro reprezentaci čísel využívá pouze dvou číslic, nazýváme soustavou dvojkovou nebo binární.

Struktura a architektura počítačů (BI-SAP) 6

Přednáška 2: Čísla v počítači. Práce s počítačem. Číselné soustavy. Převody mezi soustavami. Aritmetické operace. Uložení čísel v paměti počítače

ISU Cvičení 1. Marta Čudová

Číselné soustavy. Jedná se o způsob reprezentace čísel.

E. Pohyblivářádováčárka

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Základní jednotky používané ve výpočetní technice

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

C2115 Praktický úvod do superpočítání

REPREZENTACE DAT. Principy počítačů I. Literatura. Literály. Typy dat. Literály. Čísla Instrukce. Znaky. Logické hodnoty

35POS 2010 Počítačové systémy 1 Úvod, jazyk C Doc. Ing. Bayer Jiří, Csc. Ing. Pavel Píša

Úvod do programování 7. hodina

PB002 Základy informačních technologií

Binární logika Osnova kurzu

Číselné soustavy. Prvopočátky. Starověký Egypt a Mezopotámie. Již staří Římané

Pokud není uvedeno jinak, uvedený materiál je z vlastních zdrojů autora

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Y36SAP - aritmetika. Osnova

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Převod Bin do BCD pomocí Hornerova schématu

Pokročilá algoritmizace amortizovaná složitost, Fibonacciho halda, počítačová aritmetika

Datové typy a jejich reprezentace v počítači.

2 Ukládání dat do paměti počítače

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Úloha 1 Spojte binární obrazy na obrázku s hodnotami, které reprezentují.

Struktura a architektura počítačů

Algoritmizace a programování

P2 Číselné soustavy, jejich převody a operace v čís. soustavách

Způsoby realizace této funkce:

Principy počítačů a operačních systémů

Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Aritmetické operácie v rôznych číselných sústavách. Ľudmila MACEKOVÁ, KEMT-FEI-TUKE, sep. 2017

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

LEKCE 6. Operátory. V této lekci najdete:

B. Sčítání,odčítání adoplňkovýkód

Už známe datové typy pro representaci celých čísel i typy pro representaci

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

Násobení. MI-AAK(Aritmetika a kódy)

Struktura a architektura počítačů

Celá čísla. Celá čísla jsou množinou čísel, kterou tvoří všechna čísla přirozená, čísla k nim opačná a číslo nula.

Algoritmizace a programování

Reprezentace dat. INP 2008 FIT VUT v Brně

KOMBINAČNÍ LOGICKÉ OBVODY

Analogově-číslicové převodníky ( A/D )

Dělení. MI-AAK(Aritmetika a kódy)

Elementární datové typy

1 Teorie čísel. Základní informace

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

1. Základní pojmy a číselné soustavy

4 Datové struktury. Datové struktury. Zobrazení dat v počítači

Úvod do informačních technologií

1. 1 P Ř I R O Z E N Á Č Í S L A

ČÍSLICOVÁ TECHNIKA OBSAH KAPITOLA 1 ČÍSELNÉ SOUSTAVY A KÓDY

Zobrazení dat Cíl kapitoly:

Variace. Číselné výrazy

1 z :27

CX77 IV Elektronická kalkulačka s tiskárnou Uživatelský manuál

UMÍ POČÍTAČE POČÍTAT?

Nejvyšší řád čísla bit č. 7 bit č. 6 bit č.5 bit č. 4 bit č. 3 bit č. 2 bit č. 1 bit č. 0

Transkript:

Mikroprocesorová technika (BMPT) Přednáška č. 10 Číselné soustavy v mikroprocesorové technice Ing. Tomáš Frýza, Ph.D.

Obsah přednášky Číselné soustavy v mikroprocesorové technice Dekadická, binární, hexadecimální Vzájemný převod mezi číselnými soustavami Aritmetické operace v jednotlivých soustavách (násobení, dělení) BCD kód Vyjádření záporných a desetinných čísel Dvojkový doplněk, floating-point 2

Dekadická číselná soustava Dekadická (desítková) je nejsrozumitelnější pro člověka (10 prstů) Základ soustavy: 10 Využívá symboly: 0,1,2,...,9 Kladný rozsah hodnot: 0 až 10 počet symbolů 1 Př.: počet symbolů = 3; rozsah 0 až 999 Př.: rozklad čísla 2 745,214 10 (2 10 3 ) + (7 10 2 ) + (4 10 1 ) + (5 10 0 ) + (2 10-1 ) + (1 10-2 ) + (4 10-3 ) 3

Binární číselná soustava Binární (dvojková) soustava se používá v číslicové technice Základ soustavy: 2 Využívá symboly: 0,1 Kladný rozsah hodnot: 0 až 2 počet symbolů 1 Př.: počet symbolů = 8; rozsah 0 až 255 10 Př.: rozklad čísla 1011,101 2 (1 2 3 ) + (0 2 2 ) + (1 2 1 ) + (1 2 0 ) + (1 2-1 ) + (0 2-2 ) + (1 2-3 ) = 8 + 0 +2 +1 + 0,5 + 0 + 0,125 = 11,625 10 Značení: 1100 2, 0b1010 4

Hexadecimální číselná soustava Hexadecimální, šestnáctková, hexa Přehlednější zápis binárních čísel Základ soustavy: 16 Využívá symboly: 0,1,2,...,9,A,B,...,F Kladný rozsah hodnot: 0 až 16 počet symbolů 1 Př.: počet symbolů = 4; rozsah 0 až 65 535 10 Značení: 2BA6 16, 0xD2, $25A4 5

Převod mezi soustavami Dekadická Binární Haxadecimální 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 16 10000 10 17 10001 11 Každý symbol z hexadec. soustavy lze vyjádřit právě 4 bity Osm bitů (jeden byte) = dva hexadec. symboly! 1011, 0101, 0011, 1101 11 5 3 13 6

Binární <-> Dekadická soustava Binární -> dekadická soustava (viz. výše) Dekadická -> binární soustava Reálné číslo se rozdělí na celou a desetinnou část. Celá část se dělí základem soustavy (tj. 2) a zbytek udává hodnotu od binární čárky směrem k MSB. Př.: 25,375 10 a) celá část 25/2 = 12 + zbytek 1 -->.... 1 12/2 = 6 + zbytek 0... 0 1 6/2 = 3 + zbytek 0.. 0 0 1 3/2 = 1 + zbytek 1. 1 0 0 1 1/2 = 0 + zbytek 1 1 1 0 0 1 7

Binární <-> Dekadická soustava Desetinná část se násobí základem soustavy a přenosové bity udávají hodnotu od binární čárky směrem k LSB. b) desetinná část 0,375 2 = 0,75 = 0,75 s přenosem 0 --> 11001,0.. 0,75 2 = 1,50 = 0,50 s přenosem 1 11001,01. 0,50 2 = 1,00 = 0 s přenosem 1 11001,011 2 8

Hexadec. <-> Dekadická soust. Hexadec. -> dekadická soustava Jednotlivé symboly lze váhovat obdobně jako u dekadické soustavy Př.: 356 16 = (3 16 2 ) + (5 16 1 ) + (6 16 0 ) = 768 + 80 + 6 = 854 10 Př.: 2AF 16 = (2 16 2 ) + (10 16 1 ) + (15 16 0 ) = 512 + 160 + 15 = 687 10 9

Hexadec. <-> Dekadická soust. Dekadická -> hexadecimální soustava Obdobný postup jako u převodu do binární soustavy Př.: 423 10 423/16 = 26 + zbytek 7 -->.. 7 26/16 = 1 + zbytek 10. A 7 1 = 0 + zbytek 1 1 A 7 16 10

Hexadec. <-> Binární soustava Hexadecimální -> binární soustava Každý symbol v hexadec. soustavě představuje čtveřici bitů Př.: 972 16 = 9 (1001) 7 (0111) 2 (0010) = 1001 0111 0010 2 Př.: 5F1,6 16 = 5 (0101) F (1111) 1 (0001), 6 (0110) = 0101 1111 0001, 0110 2 11

Hexadec. <-> Binární soustava Binární -> hexadecimální soustava Binární číslo se rozdělí na čtveřice bitů (nibly) a ty se převádí nezávisle na ostatních Př.: 1 1011 1010 0110 2 = 0001 (1) 1011 (B) 1010 (A) 0110 (6) = 1BA6 16 Př.: 101 1011 1011,0111 110 2 = 0101 (5) 1011 (B) 1011 (B), 0111 (7) 1100 (C) = 5BB,7C 16 Stačí znát převodní tabulku pro 16 symbolů (0 F) 12

Aritmetické operace v číselných soustavách - součet Dekadická soustava (viz. první a druhá třída ZŠ) Binární soustava Sčítají se odpovídající bity od LSB Je-li výsledek součtu větší než jsme schopni v soustavě vyjádřit, dojde k přenosu do vyššího řádu (přičte se jednička) ==> potřebujeme n+1 bitů 0 + 0 = 0 bez přenosu 1 + 0 = 1 bez přenosu 1 + 1 = 0 přenos 1 1 + 0 + 0 = 1 bez přenosu 1 + 0 + 1 = 0 přenos 1 1 + 1 + 1 = 1 přenos 1 1001 9 10 1011 11 10 1 1 1 1 0100 20 10 0001 0011 19 10 0000 1011 11 10 1 1 0001 1110 30 10 13

Aritmetické operace v číselných soustavách - součet Hexadecimální soustava Postup je identický: sčítají se odpovídající symboly od nejméně důležitých (zprava:) a používá se přenos do vyšších řádů 3A 58 10 Jiná možnost: Převést hodnoty z hexadec. soustavy do binární, příp. dekadické Provést aritm. operaci Výsledek zpětně převést do hexadec. soustavy 8E 142 10 1 C8 200 10 0011 1010 (CA) 1000 1110 (8E) 1 1 1 1 1 1100 1000 14

Aritmetické operace v číselných soustavách - rozdíl Výpočet je ve všech soustavách identický Př.: 12 6 =? -1-1 Binární soustava: 1100 12 10 0-0=0-0110 -6 10 0-1=1 a odečíst 1 od následujícího bitu 0110 6 10 1-0=1 Př.: 18 8 =? 1-1=0-1 Jiná možnost využívá definice rozdílu pomocí součtu opačného čísla (viz. Dvojkový doplněk) 0001 0010 18 10-0000 1000-8 10 0000 1010 10 10 15

Aritmetické operace v číselných soust. celočíselné násobení Násobení dvou čísel se provádí ve všech soustavách stejně (viz. první a druhá třída ZŠ) V binární soustavě je to ještě jednodušší násobíme nulou nebo jedničkou ;-) 1001 9 10 Násobí se od LSB (nejméně důležitý bit) 0011 3 10 (1 1=1 1 0=0 0 1=0 0 0=0) 1001 Dílčí výsledky se binárně sečtou 1001 Výsledek násobení dvou n-bitových čísel má 2n bitů 0000 0000 0011011 27 10 16

Aritmetické operace v číselných soust. - celočíselné dělení Postupným odečítáním dělitele od dělence zjistíme kolikrát se dělitel vejde do dělence Pozn.: Pravidla binárního odečítání 0-0=0 0-1=1 a odečíst 1 od následujícího bitu 1-0=1 1-1=0 Př.: 12 : 3 =? 1100 12 10-0011 3 10 1001 1 (0001) -0011 0110 2 (0010) -0011 0011 3 (0011) -0011 0000 4 10 (0100) 17

Násobení a dělení hodnotou 2,4,8,16,... Př.: 9 4 =? Př.: 6 : 2 =? 1001 9 10 0110 6 10 0100 4 10 0000 0000 1001 0000 0100100 36 10-0010 2 10 0100 1 (0001) -0010 0010 2 (0010) -0010 0000 3 10 (0011) Násobení 2 lze realizovat binárním posunem doleva o 1 pozici Dělení 2 lze realizovat binárním posunem doprava o 1 pozici 18

BCD (Binary Coded Decimal) kód Všechny číslicové systémy pracují v binární soustavě, ale vstupní/výstupní data jsou požadována v dekadické soustavě (kalkulačka, voltmetr, čítač, hodiny,...) Pro velké čísla je převod mezi binární a dekadickou soustavou příliš zdlouhavý a náročný; místo toho se používá tzv. BCD kód BCD kód popisuje každou číslici v dekadické soustavě čtveřicí bitů (tři bity jsou málo:) 0, 1, 2,..., 9 -> 0000, 0001, 0010,..., 1001 Zbývajících šest (1010, 1011,..., 1111) kombinací není využito 19

BCD (Binary Coded Decimal) kód Nevyužité (nepovolené) kombinace BCD kódu bývají systémem detekovány Binární kód kóduje číslo jako celek, ale BCD kód kóduje každou číslici zvlášť ==> naprosto odlišné vyjádření téhož čísla Př.: 153 10 = 1001 1001 2 (binární soust.) <-- 8 bitů 153 10 = 0001 0101 0011 (BCD) <-- 12 bitů Př.: 94,3 10 = 1001 0100,0011 (BCD) 20

Vyjádření záporných čísel Hodnota binárního čísla je v mikroproc. technice vyjádřena určitým počtem bitů. Počet bitů určuje rozsah hodnot, který lze vyjádřit (8 bitů: 0 až 255) Pro potřeby vyjádření zda je hodnota kladná, nebo záporná, je přidán tzv. znaménkový bit na pozici MSB (nejvíce důležitý bit) 0 <=> kladná hodnota; 1 <=> záporná hodnota True-Magnitude form: +44 10 = 0010 1100 2-44 10 = 1010 1100 2-2 + 3 = 1010 + 0011 = 1101 = -5 (!!) 21

Dvojkový doplněk V číslicových systémech se k vyjádření záporných čísel používá tzv. dvojkový doplněk Dvojkový doplněk představuje číslo opačné k dané hodnotě Postup vytvoření dvojkového doplňku: Negace všech bitů (tj. vytvořit jednotkový doplněk) Binárně přičíst jedničku -2 + 3 =? 0010 --> 1101 1110-2 0001 0011 3 1110 1 0001 1 10 22

Dvojkový doplněk Rychlejší postup při tvorbě dvojkového doplňku: Opisovat všechny nulové bity od LSB První jednotkový bit opsat Zbývající bity negovat Př.: 20 --> -20 0001 0100 --> 1110 1100 Kontrola: 1110 1011 0000 0001 1110 1100 Pozn.: Samé jedničky ve dvojkovém doplňku reprezentují vždy -1 23

Sčítání znaménkových čísel Pro záporná čísla ve dvojkovém doplňku platí stejná pravidla pro aritmetické bitové operace Součet dvou kladných hodnot 0 1 0 0 1 +9 +0 0 1 0 0 +(+4) 0 1 1 0 1 +13 Součet kladného a malého záporného čísla 0 1 0 0 1 +9 +1 1 1 0 0 +(-4) 1/ 0 0 1 0 1 +5 24

Sčítání znaménkových čísel Součet kladného a velkého záporného čísla 1 0 1 1 1-9 +0 0 1 0 0 +(+4) 1 1 0 1 1-5 Součet dvou záporných čísel 1 0 1 1 1-9 +1 1 1 0 0 +(-4) 1/ 1 0 0 1 1-13 Součet opačných čísel 1 0 1 1 1-9 +0 1 0 0 1 +(+9) 1/ 0 0 0 0 0 0 25

Odečítání znaménkových čísel Odečítání znaménkových čísel vyjádřených ve dvojkovém doplňku se provádí pomocí sčítání ;-) Postup: K menšiteli vytvořit dvojkový doplněk Tento doplněk přičíst k menšenci 0 1 0 0 1 +9 0 1 0 0 1 +9-0 0 1 0 0 -(+4) +1 1 1 0 0 +(-4) +1 1 1 0 0 +(-4) 1/ 0 0 1 0 1 +5 Při součtu velkých čísel není zaručen dostatečný počet bitů pro výsledek -> dojde k přetečení (chybný výsl.) 0 1 0 0 1 +9 +0 1 0 0 0 +(+8) 1 0 0 0 1-15 (!!) 26

Binární čísla Floating-point Rozsah hodnot dvojkového doplňku je omezený 8bitový systém: -128 10 až +127 10 16bitový systém: -32 768 10 až + 32 767 10 Pro reprezentaci desetinných čísel a pro zvýšení rozsahu je použita reprezentace s plovoucí řádovou čárkou (Floating-point) Tři základní formáty podle standardu ANSI/IEEE 754: Jednoduchá přesnost (Single precision SP) 32 bitů Dvojitá přesnost (Double precision DP) 64 bitů Rozšířená přesnost (Extended precision EP) 80 bitů 27

Single precision Floating-point Formát binárního čísla se skládá ze tří částí: Znaménkový bit: S 1 bit (31) Exponent: E 8 bitů (30, 29,..., 23) Mantisa: M 23 bitů (22, 21,..., 0) Znaménkový bit = 1 <=> záporné číslo Záporná čísla nejsou vyjádřena ve dvojkovém doplňku; čísla opačná se proto liší pouze znaménkovým bitem 28

Single precision Floating-point Mantisa: Reprezentuje nejdůležitější bity kódovaného čísla Hodnota je normována => desetinná čárka je přesunuta za první nenulovou číslicí (v binární soustavě za první jedničku :) Z desetinné části se pak vybere mantisa Exponent: Může vyjádřit jak kladný, tak i záporný exponent K dané hodnotě je vždy přičtena konstanta 127 10, proto je výsledná hodnota ve formátu floating-point vždy kladná!! 29

Single precision Floating-point Př.: Vyjádřete desetinné číslo +6,625 10 ve tvaru s plovoucí řádovou čárkou (jednoduchá přesnost) Řešení: Přepsat dané číslo do bin. soust.: 6,625 = 110,101 2 Normovaná podoba: 110,101 = 1,10101 2 2 23bitová mantisa: 1010 1000 0000 0000 0000 000 Exponent: 2 + 127 = 129 10 = 1000 0001 2 Znaménkový bit: 0 <=> kladné číslo SP: 0100 0000 1101 0100 0000 0000 0000 0000 30

Single precision Floating-point Př.: Podle standardu IEEE 754 přepište číslo z plovoucí řádové čárky do dekadické podoby SP: 0100 1111 1001 0101 0000 0010 1111 1001 Řešení: Znaménkový bit: 0 <=> kladné číslo Exponent: 1001 1111 2-127 10 = 159-127 = 32 1,0010 1010 0000 0101 1111 001. 2 32 = = 5 000 000 000 10 Pozn.: Ve dvojkovém doplňku lze pomocí 32 bitů vyjádřit hodnoty od -2 147 483 648 do 2 147 483 647 31

Zdroje informací Tocci, R,J. Microprocessors and Microcomputers. Pearson Education, New Jersey (USA), 2003, ISBN 0-13-060904-8 Morton, J. AVR, An Introductory Course. Newnes, Oxford (UK), 2002, ISBN 07-506-5635-2 Spasov, P. Microcontroller Technology. Prentice Hall, New Jersey (USA), 2004, ISBN 01-311-2984-8 Gadre, D.V. Programming and Customizing the Avr Microcontroller. McGraw-Hill, New York (USA), 2001, ISBN 0-07-134666-X Atmel. AVR Studio 4. [Online] http://www.atmel.com/ (září 2006) 32

Příklady k procvičení Př. 1: Převeďte desetinné číslo 1 737,343 75 do binárního tvaru. Naznačte postup převodu. Př. 2: Převeďte desetinné číslo 5 471,593 75 do hexadecimální soustavy. Naznačte postup převodu. Př. 3: Převeďte hodnotu 23DB6,741 do binární soustavy. Př. 4: Zapište posloupnost bitů 10110111000,0110 v šestnáctkové soustavě. Př. 5: Hodnoty vyjádřené ve dvojkovém doplňku převeďte do decimální soust.: a) 10110, b) 01101, c) 11011 33