reprezentace dat
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 PresentationTRANSCRIPT
11
Reprezentace datReprezentace dat
„There are only 10 types of people in the world: - those who understand binary, - and those who don't.“
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
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
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
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
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)
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
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
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ů
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í
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
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
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
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
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
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ý!!
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í)
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)
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í
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)
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
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
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
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)
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
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
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)
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
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
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ů
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
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
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
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
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í)
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í
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
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