38
1 Reprezentace dat Reprezentace dat „There are only 10 types of people in the world: - those who understand binary, - and those who don't.“

Reprezentace dat

  • Upload
    kevina

  • View
    51

  • Download
    0

Embed Size (px)

DESCRIPTION

Reprezentace dat. „ There are only 10 types of people in the world: - those who understand binary , - and those who don't. “. Typy dat. Literály logické hodnoty znaky grafické symboly nečíselná data Čísla celočíselná (integer) racionální (floating point) Instrukce. Logické hodnoty. - PowerPoint PPT Presentation

Citation preview

Page 1: Reprezentace dat

11

Reprezentace datReprezentace dat

„There are only 10 types of people in the world: - those who understand binary, - and those who don't.“

Page 2: Reprezentace dat

22

Typy datTypy dat

Literály Literály logické hodnotylogické hodnoty znakyznaky grafické symbolygrafické symboly nečíselná datanečíselná data

ČíslaČísla celočíselná (integer)celočíselná (integer) racionální (floating point)racionální (floating point)

InstrukceInstrukce

Page 3: Reprezentace dat

33

Logické hodnotyLogické hodnoty

možno reprezentovat jediným bitemmožno reprezentovat jediným bitem

problémy s adresovánímproblémy s adresováním reprezentace celou datovou reprezentace celou datovou

jednotkoujednotkou

problémy s velikostíproblémy s velikostí

xxx0xxxx xxx0xxxx xxx1xxxx xxx1xxxx

???????? ????????00000000 00000000

11111111 1111111100000000 00000000

Page 4: Reprezentace dat

44

ZnakyZnaky

EBCDICEBCDIC 256 závazných znaků256 závazných znaků 00 .. 3F ... speciální (řídící) znaky00 .. 3F ... speciální (řídící) znaky 40 .. FF ... tisknutelné znaky40 .. FF ... tisknutelné znaky Mnoho volných pozicMnoho volných pozic Abeceda není v jednom blokuAbeceda není v jednom bloku

ASCIIASCII UNICODEUNICODE

Page 5: Reprezentace dat

55

ASCIIASCIIAmerican Standards Code for Information American Standards Code for Information

InterchangeInterchange

b6 0 0 0 0 1 1 1 1 b5 0 0 1 1 0 0 1 1

b3 b2 b1 b0 b4 0 1 0 1 0 1 0 1 0 0 0 0 NUL DLE space 0 @ P ` p 0 0 0 1 SOH DC1 ! 1 A Q a q 0 0 1 0 STX DC2 " 2 B R b r 0 0 1 1 ETX DC3 # 3 C S c s 0 1 0 0 EOT DC4 $ 4 D T d t 0 1 0 1 ENQ NAK % 5 E U e u 0 1 1 0 ACK SYN & 6 F V f v 0 1 1 1 BEL ETB ' 7 G W g w 1 0 0 0 BS CAN ( 8 H X h x 1 0 0 1 HT EM ) 9 I Y i y 1 0 1 0 LF SUB * : J Z j z 1 0 1 1 VT ESC + ; K [ k { 1 1 0 0 FF FS , < L \ l | 1 1 0 1 CR GS - = M ] m } 1 1 1 0 SO RS . > N n ~ 1 1 1 1 SI US / ? O _ o DEL 'G' 01000111

Page 6: Reprezentace dat

66

ASCII – „česká“ rozšířeníASCII – „česká“ rozšíření

KOI8-čsKOI8-čs PC standardPC standard EAST8EAST8 Latin x (Latin 2)Latin x (Latin 2) Windows codepage (1250)Windows codepage (1250) ISO/IEC 8859 (8859-2)ISO/IEC 8859 (8859-2)

Page 7: Reprezentace dat

77

UNICODEUNICODE

součást normy součást normy ISO/IEC 10646-1ISO/IEC 10646-1 ( (19931993)) znak reprezentován vícebytovou znak reprezentován vícebytovou

sekvencísekvencí diakritikadiakritika možnost uživatelských symbolůmožnost uživatelských symbolů problém se staršími programyproblém se staršími programy pozor na konkrétní implementacipozor na konkrétní implementaci podpora téměř všech národních abecedpodpora téměř všech národních abeced

Page 8: Reprezentace dat

88

Reprezentace číselReprezentace čísel

Polyadické číselné soustavyPolyadické číselné soustavy

ČísloČíslo reprezentujeme reprezentujeme

uspořádanou (m+n)-ticí koeficientů uspořádanou (m+n)-ticí koeficientů aaii

Soustava může mít jeden nebo více Soustava může mít jeden nebo více základůzákladů (radix mumber system)(radix mumber system)

V soustavě s jedním základem V soustavě s jedním základem z z jsou hodnoty jsou hodnoty zzii určeny jako určeny jako zzii=z=zi i (s tímto vystačíme)(s tímto vystačíme)

m=0 ... celá čísla, mm=0 ... celá čísla, m>>0 ... zlomková část0 ... zlomková část

1ni

miii zaA

Page 9: Reprezentace dat

99

Reprezentace číselReprezentace čísel

NepolyadickéNepolyadické římské čísliceřímské číslice

1648 1648 MDCXLVIII 2003 MDCXLVIII 2003 MMIII 9 MMIII 9 IX, VIIII IX, VIIII pro počítání nevhodnépro počítání nevhodné

soustava zbytkových tříd (residue number system)soustava zbytkových tříd (residue number system) definována definována kk-tice různých-tice různých základů – prvočíselzákladů – prvočísel číslo vyjádřeno číslo vyjádřeno kk-ticí zbytků po dělení příslušným základem-ticí zbytků po dělení příslušným základem Příklad: základy 2,3,Příklad: základy 2,3,1111: číslo „devět“ zapsáno jako 1: číslo „devět“ zapsáno jako 10909 jednoznačné pouze pro čísla menší než součin základůjednoznačné pouze pro čísla menší než součin základů

Page 10: Reprezentace dat

1010

Přepis Přepis celéhocelého čísla čísla do soustavy s jiným základemdo soustavy s jiným základem

Zápis čísla A v soustavě o základu z:Zápis čísla A v soustavě o základu z:AA = = aann-1-1zzn-1n-1 + + aann-2-2zzn-2n-2 + … + + … + aa11zz1 1 + + aa00zz00 = (= (aann-1-1zzn-2n-2 + + aann-2-2zzn-3n-3 + … + … aa11)z + )z + aa00 = = aa00 + z ( + z (aa11 + z ( + z (aa22 + …+ z( + …+ z(aann-2-2 + z + zaann-1-1)…)))…))

V soustavV soustavě o základu zě o základu z’ ’ bude A zapsáno:bude A zapsáno:A A = = bb00 + + zz’(b’(b11 + z’(b + z’(b22 + …+ z’(b + …+ z’(bnn-2-2 + z’b + z’bnn-1-1)…)))…))

AA = = z’ z’ A/z’ A/z’ + A mod z’ + A mod z’ A/z’A/z’ je výsledek celočísel. dělení čísla A číslem je výsledek celočísel. dělení čísla A číslem z’z’ A mod z’A mod z’ je zbytek při tomto dělení je zbytek při tomto dělení

Page 11: Reprezentace dat

1111

Převodní algoritmusPřevodní algoritmus(pro celá čísla)(pro celá čísla)

číslo v soustavě z

V soustavě o základu z dělit základem nové soustavy (z’)

Výsledek dělení

Výsledek je

nula?

NE

Zbytek = bn

Konec

ANO

Page 12: Reprezentace dat

1212

PříkladyPříklady

1515111010 do binární do binární soustavy:soustavy:151151 : 2 =: 2 = 7575 117575 : 2 =: 2 = 3737 113737 : 2 =: 2 = 1818 111818 : 2 =: 2 = 99 0099 : 2 =: 2 = 44 1144 : 2 =: 2 = 22 0022 : 2 =: 2 = 11 0011 : 2 =: 2 = 00 11

1515111010 = 10010111 = 1001011122

13413499 do do sedmičkové sedmičkové soust.:soust.: 134134 : 7 =: 7 = 1717 00 1717 : 7 =: 7 = 22 22 22 : 7 =: 7 = 00 22

13413499 = 220 = 22077

Pomocný výpočet:134 : 7 = 17 54 0

Page 13: Reprezentace dat

1313

PPřevodřevod do desítkové do desítkové soustavysoustavy

V té jsme zvyklí počítat, takže to jde V té jsme zvyklí počítat, takže to jde takto:takto:

Koeficienty zápisu čísla o základu Koeficienty zápisu čísla o základu zz vynásobíme příslušnou mocninou vynásobíme příslušnou mocninou zz a a sečteme:sečteme:AA aann-1-1aann-2-2 … … aa11aa00

A A = = aann-1-1zzn-1n-1 + + aann-2-2zzn-2n-2 + … + + … + aa11zz1 1 + + aa00zz00 Hornerovo schHornerovo schéma (úspornější výpočet):éma (úspornější výpočet):

A A = (…(= (…(aann-1-1zz + + aann-2-2)z + …)z + )z + …)z + aa00

Page 14: Reprezentace dat

1414

Převod čísla Převod čísla se zlomkovou se zlomkovou částíčástí

Hledáme koeficienty pro Hledáme koeficienty pro zzii, , -m -m ii n-1n-1

Celá část: popsána výšeCelá část: popsána výše Zlomková část: podobně, ale základem Zlomková část: podobně, ale základem

nové soustavy nové soustavy násobímenásobíme.. Celá část dává další čísliciCelá část dává další číslici Zlomková část postupuje do další iteraceZlomková část postupuje do další iterace

Page 15: Reprezentace dat

1515

Převodní algoritmus Převodní algoritmus (pro zlomkovou část)(pro zlomkovou část)

zlomková část

čísla v soustavě z

V soustavě o základu z násobit základem nové soustavy (z’)

zlomková část

výsledek je nula?

NE

celá část = bn

ANO

Konec

Page 16: Reprezentace dat

1616

PříkladyPříklady

0,10,11010 a 0,625 a 0,6251010 převést do dvojkové soustavy: převést do dvojkové soustavy:0,10,1 * 2 =* 2 = 0,20,2 00 0,625 0,625 * 2 =* 2 = 1 1,2,25050 110,20,2 * 2 =* 2 = 0,40,4 00 0,250 0,250 * 2 =* 2 = 0 0,,500500 000,40,4 * 2 =* 2 = 0,80,8 00 0,500 0,500 * 2 =* 2 = 1 1,,000000 110,80,8 * 2 =* 2 = 1,61,6 110,60,6 * 2 =* 2 = 1,21,2 11 0,625 0,6251010 = 0,101 = 0,10122

0,20,2 * 2 =* 2 = 0,40,4 000,10,11010 0,000 0,00011001100111100110011……22

Postup nemusí být konečnýPostup nemusí být konečný!!

Page 17: Reprezentace dat

1717

Uložení čísel v pamětiUložení čísel v paměti

přirozená číslapřirozená čísla celá číslacelá čísla racionálníracionální reálná (někdy se tomu tak říká, ale reálná (někdy se tomu tak říká, ale

stejně jde jen o racionální čísla – stejně jde jen o racionální čísla – neboť každé číslo s konečným neboť každé číslo s konečným desetinným, binárním, … rozvojem je desetinným, binárním, … rozvojem je racionální)racionální)

Page 18: Reprezentace dat

1818

Uložení přirozených číselUložení přirozených čísel

převodem dopřevodem do binární soustavybinární soustavy (přímé (přímé uložení)uložení)

BCD – Binary Coded DecimalBCD – Binary Coded DecimalKaždá cifra desítkového zápisu Každá cifra desítkového zápisu

reprezentována pomocí dolních 4 bitů v bytureprezentována pomocí dolních 4 bitů v bytu „„horní“ 4 bity nevyužity nebo využity jinakhorní“ 4 bity nevyužity nebo využity jinak

Příklad: 1930Příklad: 19301010 0001 1001 0011 0000 0001 1001 0011 0000Výhoda: snadné zpracování vstupů/výstupůVýhoda: snadné zpracování vstupů/výstupůProblémy:Problémy:

aritmetikaaritmetika speciální instrukcespeciální instrukce neúspornéneúsporné packed BCD (2 cifry do 1 bytu)packed BCD (2 cifry do 1 bytu)

Page 19: Reprezentace dat

1919

Uložení celých číselUložení celých čísel

se znaménkemse znaménkem číslo převedeno do binární podobyčíslo převedeno do binární podoby doplněno doplněno znaménkovým bitem znaménkovým bitem (bit „zcela vlevo“)(bit „zcela vlevo“) dvě reprezentace nuly, složitější aritmetické dvě reprezentace nuly, složitější aritmetické

operaceoperace s posunutíms posunutím

k číslu se přičte konstanta reprezentující nuluk číslu se přičte konstanta reprezentující nulu posunuté číslo se převede do binární podobyposunuté číslo se převede do binární podoby

dvojkový doplněk (zdaleka nejpoužívanější)dvojkový doplněk (zdaleka nejpoužívanější) přirozená čísla se zobrazí přímo, záporná „trikem“přirozená čísla se zobrazí přímo, záporná „trikem“ vhodné pro aritmetické operace, zejména sčítánívhodné pro aritmetické operace, zejména sčítání

Page 20: Reprezentace dat

2020

Dvojkový doplněkDvojkový doplněk

„„nejlevější bit“ je opět znaménkovýnejlevější bit“ je opět znaménkový uložené číslo dostaneme jako součet mocniné uložené číslo dostaneme jako součet mocniné

řady (jako u přirozených čísel) s tím, že pokud řady (jako u přirozených čísel) s tím, že pokud je znaménkový bit roven 1, tak v řadě je znaménkový bit roven 1, tak v řadě reprezentuje číslo -2reprezentuje číslo -2n-1n-1 (kde n je počet bitů v (kde n je počet bitů v reprezentaci)reprezentaci)

negace: z čísla se vyrobí číslo stejné negace: z čísla se vyrobí číslo stejné „velikosti“ s opačným znaménkem takto: „velikosti“ s opačným znaménkem takto: invertujinvertuj všechny bity a přičti 1 (sčítání jako u všechny bity a přičti 1 (sčítání jako u přirozených čísel)přirozených čísel)

rozsah uložitelných čísel : (-2rozsah uložitelných čísel : (-2n-1n-1, 2, 2n-1 n-1 -1)-1)

Page 21: Reprezentace dat

2121

Příklady uloženíPříklady uložení

čísločíslo se znaménkemse znaménkem s posunutíms posunutím dvojkový doplněkdvojkový doplněk+7+7 01110111 11111111 01110111+6+6 01100110 11101110 01100110+5+5 01010101 11011101 01010101+4+4 01000100 11001100 01000100+3+3 00110011 10111011 00110011+2+2 00100010 10101010 00100010+1+1 00010001 10011001 00010001+0+0 00000000 10001000 00000000-0-0 10001000 10001000 00000000-1-1 10011001 01110111 11111111-2-2 10101010 01100110 11101110-3-3 10111011 01010101 11011101-4-4 11001100 01000100 11001100-5-5 11011101 00110011 10111011-6-6 11101110 00100010 10101010-7-7 11111111 00010001 10011001-8-8 ------ 00000000 10001000

Page 22: Reprezentace dat

2222

Konverze délek Konverze délek (u dvojkového doplňku)(u dvojkového doplňku)

znaménkové rozšířeníznaménkové rozšíření

+18+18

+18+18

-18-18

-18-18

0100 0100 0100 0100

01000000 01000000 01000000 01000000

1011 0111 1011 0111

10111111 01111111 10111111 01111111

Page 23: Reprezentace dat

2323

Sčítání ve dvojkovém Sčítání ve dvojkovém doplňkudoplňku

funguje zde normální (školní) algoritmus funguje zde normální (školní) algoritmus na sčítánína sčítání

přenos ze znaménkového bitu ven je přenos ze znaménkového bitu ven je ignorovánignorován

přetečení (overflow) nastává právě tehdy, přetečení (overflow) nastává právě tehdy, když znaménkový bit obou sčítanců je když znaménkový bit obou sčítanců je stejný a znaménkový bit součtu je opačnýstejný a znaménkový bit součtu je opačný

odečítání se realizuje pomocí negace a odečítání se realizuje pomocí negace a sčítání: A-B = A+(-B), tedy bitová inverze sčítání: A-B = A+(-B), tedy bitová inverze na B, přičtení jedničky a sečtení s Ana B, přičtení jedničky a sečtení s A

Page 24: Reprezentace dat

2424

NásobeníNásobení

mnohem složitější operace než sčítánímnohem složitější operace než sčítání implementace postupným sčítáním je implementace postupným sčítáním je

pomalá (apomalá (a**b = a + … + a)b = a + … + a) pro přirozená čísla jde přímočaře pro přirozená čísla jde přímočaře

implementovat „školní“ algoritmusimplementovat „školní“ algoritmus pro čísla ve dvojkovém doplňku je to pro čísla ve dvojkovém doplňku je to

složitější (Boothův algoritmus)složitější (Boothův algoritmus)

Page 25: Reprezentace dat

2525

NNásobení přirozených číselásobení přirozených čísel

terminologie: násobenec x násobitel = součinterminologie: násobenec x násobitel = součin součin dostaneme jako součet částečných součin dostaneme jako součet částečných

součinů, každý pro jednu číslici násobitelesoučinů, každý pro jednu číslici násobitele ve dvojkové soustavě:ve dvojkové soustavě:

bit násobitele je 0 bit násobitele je 0 částečný součin = 0 částečný součin = 0 bit násobitele je 1 bit násobitele je 1 částečný součin = násobenec částečný součin = násobenec

při sčítání je každý částečný součet posunut o při sčítání je každý částečný součet posunut o jeden bit doleva vzhledem k předchozímu jeden bit doleva vzhledem k předchozímu

součin dvou n-bitových čísel může být 2n-součin dvou n-bitových čísel může být 2n-bitové číslo (delší ne) – např. 11 bitové číslo (delší ne) – např. 11 * 11 = 1001* 11 = 1001

Page 26: Reprezentace dat

2626

NNásobení přirozených číselásobení přirozených číselAlgoritmusAlgoritmus

Registry: A,Q,M n-bitové, C 1-bitový (pro přenos)Registry: A,Q,M n-bitové, C 1-bitový (pro přenos) Inicializace: C,A := 0, Q := násobitel, M := násobenecInicializace: C,A := 0, Q := násobitel, M := násobenec Cyklus (n krát použijeme nejpravější bit v Q, bit QCyklus (n krát použijeme nejpravější bit v Q, bit Q00):):

QQ00 = 0 = 0 posun sekvence C,A,Q o 1 bit vpravo posun sekvence C,A,Q o 1 bit vpravo QQ00 = 1 = 1 přičtení M do A (případné přetečení do C) plus posun přičtení M do A (případné přetečení do C) plus posun

sekvence C,A,Q o 1 bit vpravosekvence C,A,Q o 1 bit vpravo

CC AA QQ MM C C AA QQ

00 00000000 11011011 10111011 inicializace 0inicializace 0 11011101 11111111 součet3součet3

00 10111011 11011101 součet1součet1 0 0 01100110 11111111 posun3posun3

00 01010101 11111100 posun1posun1 11 00010001 11111111 součet4součet4

00 00100010 11111111 posun2posun2 0 0 10001000 11111111 posun4posun4

Page 27: Reprezentace dat

2727

NNásobení ve dvojkovém ásobení ve dvojkovém doplňkudoplňku

algoritmus pro přirozená čísla zde nefungujealgoritmus pro přirozená čísla zde nefunguje triviální algoritmus: triviální algoritmus:

převés oba činitele na jejich absolutní hodnoty (pomocí převés oba činitele na jejich absolutní hodnoty (pomocí negace), negace),

vynásobit je jako přirozená čísla a pak vynásobit je jako přirozená čísla a pak výsledek znegovat pokud právě jeden z činitelů byl zápornývýsledek znegovat pokud právě jeden z činitelů byl záporný

Boothův algoritmus:Boothův algoritmus: chytrá modifikace algoritmu pro přirozená číslachytrá modifikace algoritmu pro přirozená čísla v každé iteraci v každé iteraci aritmetickýaritmetický posun zachovávající znaménko posun zachovávající znaménko

(nejlevější bit v A se posune vpravo a zreplikuje, C není použito)(nejlevější bit v A se posune vpravo a zreplikuje, C není použito) součet jen na začátku a konci bloku jedniček (odečtení na součet jen na začátku a konci bloku jedniček (odečtení na

začátku bloku a přičtení na konci)začátku bloku a přičtení na konci) rychlejší než triviální algoritmus (téměř na všech HW používán)rychlejší než triviální algoritmus (téměř na všech HW používán) důkaz, že funguje korektně, je složitý (nebudeme provádět)důkaz, že funguje korektně, je složitý (nebudeme provádět)

Page 28: Reprezentace dat

2828

Uložení racionálních číselUložení racionálních čísel

Z různých možných reprezentací se Z různých možných reprezentací se nejvíce ujala reprezentace s plovoucí nejvíce ujala reprezentace s plovoucí řádovou čárkou („floating point“):řádovou čárkou („floating point“):

Je dán základ Je dán základ ββ a přesnost a přesnost p p (počet (počet číslic)číslic)

Příklad:Příklad:0,90,9 pro pro ββ==10, 10, pp==3 ... 3 ... 9.00 9.00 10 10-1-1

0,10,1 pro pro ββ==2, 2, pp==24 ... (nelze přesně)24 ... (nelze přesně)1.10011001100110011001100 1.10011001100110011001100 2 2-4-4

Page 29: Reprezentace dat

2929

Floating – point Floating – point reprezentacereprezentace

Zápis ve tvaru (jedna cifra před desetinnou tečkou, Zápis ve tvaru (jedna cifra před desetinnou tečkou, zbytek za desetinnou tečkou)zbytek za desetinnou tečkou)

dd00.d.d11dd2 ... 2 ... ddp-1p-1 ββ ee ( 0 ( 0 d dii ββ ) )reprezentuje čísloreprezentuje číslo

(d(d00 d d1 1 ββ -1 -1 ... ... d dp-1 p-1 ββ 11--pp)) ββ ee

Zápis nemusí být jednoznačný: Zápis nemusí být jednoznačný: 1.00 1.00 10 10-1-1

0.01 0.01 10 1011

Je-li dJe-li d00 0, reprezentace je nazývána 0, reprezentace je nazývána normalizovanounormalizovanou Pro dPro d00 0 je reprezentace nazývána 0 je reprezentace nazývána

denormalizovanoudenormalizovanou

Page 30: Reprezentace dat

3030

IEEE Standard 754IEEE Standard 754

dnes univerzálně rozšířenýdnes univerzálně rozšířený normalizovaná mantisa a exponent s posunemnormalizovaná mantisa a exponent s posunem single precision: single precision: ββ==2, 2, pp==24, 24, e e = 8 = 8 bitůbitů double precision: double precision: ββ==2, 2, pp==53, 53, e e = = 1111 bitůbitů quadruple precision: quadruple precision: ββ==2, 2, pp==11113, 3, e e = = 1155

bitůbitů

Extended formats:Extended formats: single extended: single extended: ββ==2, 2, pp≥≥32, 32, ee ≥≥ 1111 bitůbitů double extended: double extended: ββ==2, 2, pp≥≥64, 64, ee ≥≥ 1515 bitůbitů

Page 31: Reprezentace dat

3131

IEEE Standard 754IEEE Standard 754

zápis v bitovém formátu (single a zápis v bitovém formátu (single a double)double) Exponent Mantisa31 30 23 22 0

Exponent Mantisa Exponent Mantisa31 30 23 22 0

79 78 64 63 0

Exponent Mantisa79 78 64 63 0

Exponent Mantisa

Page 32: Reprezentace dat

3232

Možnosti zápisu dle IEEE Možnosti zápisu dle IEEE 754754

exponentexponent mantisamantisa významvýznam

eeminmin-1-1 000…000…

000000mm 00 00

eeminmin-1-1 mm 0 0 0.0.mm 2 2eeminmin

< < eeminmin,, eemaxmax>> mm 1.1.mm 2 2ee

eemaxmax+1+1 111…111…

111111mm 0 0

eemaxmax+1+1 mm 0 0 1xxx…xxx1xxx…xxx QNaNQNaN

eemaxmax+1+1 mm 0 0 0xxx…xxx0xxx…xxx SNaNSNaN

Page 33: Reprezentace dat

3333

NaNNaN

Pozor na chování konkrétního procesoru a Pozor na chování konkrétního procesoru a kompilátoru!!!!kompilátoru!!!!

operaceoperace vznik NaNvznik NaN

++ + (-+ (-))

0 0 // 0/0, 0/0, // x pro x<0x pro x<0

Page 34: Reprezentace dat

3434

Operace s floating-point Operace s floating-point číslyčísly

AA=M=M11 zzexpexp1 1 B=MB=M22 zzexpexp22

Sčítání o odečítáníSčítání o odečítání• Pro expPro exp11expexp22 je A+B = (Mje A+B = (M11 + M + M22) ) zzexpexp11

• Pro expPro exp11expexp22 je nutno: je nutno: A nebo B A nebo B denormalizovatdenormalizovat provést výpočetprovést výpočet normalizovat výsledeknormalizovat výsledek

• Pozor:Pozor: sčítání a odečítání nejsou asociativnísčítání a odečítání nejsou asociativní přetečení či podtečení (při denormalizaci i při výpočtu)přetečení či podtečení (při denormalizaci i při výpočtu)

Násobení a děleníNásobení a dělení• AA..B = (MB = (M11 .. M M22) ) zzexpexp11+exp+exp22

• A/B = (MA/B = (M11 / M / M22) ) zzexpexp11-exp-exp22

Page 35: Reprezentace dat

3535

Vznik chybVznik chyb

Při výpočtuPři výpočtu overflow – přetečeníoverflow – přetečení underflow – podtečeníunderflow – podtečení divide by zero – dělení nuloudivide by zero – dělení nulou invalid – neplatná operaceinvalid – neplatná operace inexact – nepřesný výsledekinexact – nepřesný výsledek

Při konverziPři konverzi scaling error – zavedením stupnice (škálování)scaling error – zavedením stupnice (škálování) truncation error – zanedbáním části číslatruncation error – zanedbáním části čísla rounding error – zaokrouhlenímrounding error – zaokrouhlením (při pořizování)(při pořizování)

Page 36: Reprezentace dat

3636

Vícebytové sekvenceVícebytové sekvence

jedno číslo je typicky uloženo ve více jedno číslo je typicky uloženo ve více bytechbytech

problém – jak ukládat? jak přenášet?problém – jak ukládat? jak přenášet? od nižších „řádů“od nižších „řádů“ od vyšších „řádů“od vyšších „řádů“ jinak...?jinak...?

po jakých částech?po jakých částech? hlavní problém: potrabilita SW a portabilita hlavní problém: potrabilita SW a portabilita

dat mezi zařízeními s různými způsoby dat mezi zařízeními s různými způsoby ukládáníukládání

Page 37: Reprezentace dat

3737

Ukládání vícebytových Ukládání vícebytových sekvencísekvencí

Big-endianBig-endian IBM IBM 360/360/370, PDP-10, Motorola 6800, různé RISC370, PDP-10, Motorola 6800, různé RISC

Little-endianLittle-endian VAX, MOS 6502, Intel x86VAX, MOS 6502, Intel x86

Midle-endian – ani little, ani big. Midle-endian – ani little, ani big. „„Use of perverse byte orders such as 3-4-1-2 or 2-Use of perverse byte orders such as 3-4-1-2 or 2-1-4-3, ocassionally found in the packed-decimal 1-4-3, ocassionally found in the packed-decimal formats of minicomputer manufacturers who shall formats of minicomputer manufacturers who shall remain nameless.remain nameless.““

NUXI problemNUXI problem

Page 38: Reprezentace dat

3838

Byte-sexual / bi-endianByte-sexual / bi-endian

PowerPC, DEC Alpha, MIPS, PA-RISC, PowerPC, DEC Alpha, MIPS, PA-RISC, ARM, IA64ARM, IA64

někdy lze změnit programově (bit v někdy lze změnit programově (bit v konfiguraci) někdy jen HW (DEC Alpha)konfiguraci) někdy jen HW (DEC Alpha) default big: MIPS + IRIX, PA-RISC, většina default big: MIPS + IRIX, PA-RISC, většina

PPCPPC default little: MIPS + Ultrix, Alpha, IA-64 + default little: MIPS + Ultrix, Alpha, IA-64 +

LinuxLinux