Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

Hasonló dokumentumok
5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Informatikai Rendszerek Alapjai

Assembly programozás: 2. gyakorlat

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Máté: Számítógép architektúrák

Műveletek lebegőpontos adatokkal

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Digitális technika VIMIAA01

Számítógép architektúrák

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés a számítástechnikába

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Máté: Számítógép architektúrák

Digitális technika VIMIAA02 1. EA

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Fixpontos és lebegőpontos DSP Számrendszerek

Programozott soros szinkron adatátvitel

5. Fejezet : Lebegőpontos számok

(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek

4. Fejezet : Az egész számok (integer) ábrázolása

INFORMATIKA MATEMATIKAI ALAPJAI

Digitális technika VIMIAA01

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Digitális technika VIMIAA01

Bevezetés az informatikába

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

2. Fejezet : Számrendszerek

Összeadás BCD számokkal

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

DIGITÁLIS TECHNIKA I KÓD IRODALOM SZIMBÓLUMKÉSZLET KÓDOLÁS ÉS DEKÓDOLÁS

Bevezetés az Informatikába

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

Az Informatika Elméleti Alapjai

Informatika elméleti alapjai. January 17, 2014

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

1. forduló Az adat, az információ és a hír jelentése és tartalma. A kommunikáció

Digitális Rendszerek és Számítógép Architektúrák

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

I+K technológiák. Számrendszerek, kódolás

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Harmadik gyakorlat. Számrendszerek

(jegyzet) Bérci Norbert szeptember i óra anyaga A számrendszer alapja és a számjegyek Alaki- és helyiérték...

Aritmetikai utasítások I.

Számítógép Architektúrák (MIKNB113A)

Bevezetés az informatikába

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Kombinációs hálózatok Számok és kódok

OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 1

INFO1 Számok és karakterek

Számítógép Architektúrák (MIKNB113A)

Bináris egység: bit (binary unit) bit ~ b; byte ~ B (Gb Gigabit;GB Gigabyte) Gb;GB;Gib;GiB mind más. Elnevezés Jele Értéke Elnevezés Jele Értéke

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

A TMS320C50 és TMS320C24x assembly programozására példák

A számrendszerekrl általában

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

1. INFORMATIKAI ALAPFOGALMAK HÍRKÖZLÉSI RENDSZER SZÁMRENDSZEREK... 6

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4.

Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.

Matematikai alapok. Dr. Iványi Péter

Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Digitális rendszerek. Utasításarchitektúra szintje

Informatika érettségi vizsga

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Kifejezések. Kozsik Tamás. December 11, 2016

A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Kifejezések. Kozsik Tamás. December 11, 2016

Számítógépes alapismeretek

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

DIGITÁLIS TECHNIKA I SZÁMRENDSZEREK HELYÉRTÉK SZÁMRENDSZEREK RÓMAI SZÁMOK ÉS RENDSZERÜK. Dr. Lovassy Rita Dr.

1. ábra. Repülő eszköz matematikai modellje ( fekete doboz )

Szám- és kódrendszerek

A 32 bites x86-os architektúra regiszterei

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Objektumorientált Programozás I.

Információs technológiák 2. Ea: Info-tour-mix. Nélkülözhetetlen alapfogalmak

Digitális technika VIMIAA hét

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

DIGITÁLIS TECHNIKA I

Architektúra I. A Számítási modell fogalma: A számításra vonatkozó alapelvek absztarakciója. Jellemzői: - Tudás alapú számítási modell.

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Készítette: Nagy Tibor István

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

Digitális technika VIMIAA hét

Adatelérés és memóriakezelés

Az informatika alapjai

26.B 26.B. Analóg és digitális mennyiségek jellemzıi

Algoritmizálás és adatmodellezés tanítása 4. előadás

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Adatbázis rendszerek. dr. Siki Zoltán

Matematikai alapok. Dr. Iványi Péter

Átírás:

Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Adattípusok Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu

Az adatmanipulációs fa z adatmanipulációs fa két szempontból hasznos: egyrészt tartalmazza a potenciális formákat és lehetőségeket másrészt ennek bizonyos részfái megmutatják pl. az adott konkrét implementációs modell (az adott processzor) lehetőségeit. z architektúrának az egyik központi kérdése, ogy mely adattípusok kezelését támogatja. Az dattípusok fontosságát jelzi az is, hogy az datmanipulációs fa legfelsőbb szintjét éppen az dattípusok foglalják el. támogatott adattípusok halmazát az architektúra élzott alkalmazási területe határozza meg. inden architektúra támogatja a fixpontos és a ogikai adattípusokat, az üzleti alkalmazások a angsúlyt a BCD-kódra és a karakter sztringre elyezik, a tudományos alkalmazások és a realime alkalmazások többsége a lebegőpontos brázolást is magukban foglalják. másik oldalról a választást behatárolja: az alkalmazott technológia és a költségek figyelembe vétele. Data types (T) Adattípusok Operations (O) Mûveletek Operand-types (R) Utasítás-típusok Addressing modes(a) Címzési módok Codes (C) Kódok DMT FP4.. + - * /.. rrr rmr mmm.. ((R)+D) ((PC)+D) ((RI)+D) ((PC)+D).. IOOIIOO......

Adattípusok adattípusok elemi adattípusok adatszerkezetek (adatstruktúrák) Az adatszerkezetek elemi adatokból épülnek fel. Az elemi adatnak nincs szerkezete, egyes részeit nem tudjuk külön kezelni. Adatszerkezetekről általában a memóriával kapcsolatban beszélhetünk: az adatszerkezet állhat azonos típusú elemekből (tömb, vektor, szöveg, verem, sor, lista, fa, amelyeknek a leggyakrabban alkalmazott fajtája a bináris fa, és a halmaz) állhat különböző típusú részekből, a részeket egyenként kell megadni (rekord) állhat többféle típusú részekből, de a részekre osztás is többféleképpen történhet (alternatív szerkezet).

Elemi adattípusok Elemi adattípusok Numerikus Nem numerikus Előjeles Nem előjeles Alfanumerikus Logikai Öndefiniáló Fixpontos Karakter Jelölt Lebegőpontos Sztring Deszkriptoros Binárisan kódolt decimális Összetett

Fixpontos adattípusok Fixpontos 1 byte 8 bit Félszó 16 bit Szó 32 bit Dupla szó 64 bit Quadszó 128 bit Előjeles Előjel nélküli Abszolút értékes Egyes komplemens Kettes komplemens Többletes

Előjel nélküli fixpontos tárolási formák MSB LSB fixpontos egész n 0 A 2 1 n bináris pont MSB LSB fixpontos tört 0 A 1 2 n bináris pont n

Negatív bináris számok Abszolút értékes kód Az előjelbit 0 pozitív szám 1 negatív szám a soron következõ bitek jelzik a szám abszolút értékét. Érték +127-127 kód Előjelbit: 0: + 1: - Decimális érték -127-1 0 +1 +127 Bináris kód 1111 1111 1000 0001 0000 0000 0000 0001 0111 1111

Negatív bináris számok Inverz vagy egyes komplemens egy egyszerű inverz-képzés Érték +127 kód Előjelbit: 0: + 1: - -127 Decimális érték -127-1 0 +1 +127 Bináris kód 1000 000 1111 1110 0000 0000 0000 0001 0111 1111

Negatív bináris számok Kettes komplemens inverzképzés és hozzáadunk 1-et az LSB-hez (8 biten 256 db értéket lehet ábrázolni) Érték +127 kód Előjelbit: 0: + 1: - -128 Decimális érték -128-1 0 +1 +127 Bináris kód 1000 000 1111 1111 0000 0000 0000 0001 0111 1111

Negatív bináris számok Érték +127 2 m-1 többletes vagy Additív kód (eltolt nullájú kód) Például a 128-többletes kód kód -128 Decimális érték -128-1 0 +1 +127 Bináris kód 0000 000 0111 1111 1000 0000 1000 0001 1111 1111

Lebegőpontos adattípusok Lebegőpontos adatok Normalizált Nem normalizált Hexadecimális radix Bináris radix Egyszeres Dupla Kiterjesztett Négyszeres

Előjel nélküli lebegőpontos tárolás MSB LSB MSB LSB karakterisztika bináris pont mantissza (m) előjel nélküli lebegőpontos szám 1 m 2 1 2 A < 1 2

IEEE 754 szabvány a lebegőpontos számok ábrázolására A lebegőpontos számok normalizált formája s - a mantissza (fixpontos) előjele 0, ha a szám pozitív, 1, ha negatív a az egyesekre normalizált mantissza törtrésze p a karakterisztika eredeti értéke e az eltolás (többlet) értéke, melynek nagysága 2 m-1-1, ahol m=8, 11, 15 A különböző pontosságú számok ábrázolási formája A s ± p+ e = ( 1) (1. a) 2 Előjel Mantissza Karakterisztika Egyszeres pontosság 32 bit 1 bit 23 bit 8 bit Dupla pontosság 64 bit 1 bit 52 bit 11 bit Kiterjesztett pontosság 80 bit 1 bit 64 bit 15 bit Négyszeres pontosság 128 bit 1 bit 112 bit 15 bit

Előjeles lebegőpontos adatformátum szignifikandus előjele egyszeres és dupla pontosságú szignifikandus előjele karakterisztika bináris pont 1 szignifikandus kiterjesztett pontosságú karakterisztika bináris pont szignifikandus Szignifikandus előjele 0 vagy 1 Karakterisztika számábrázolási módja 2 m-1-1 többletes (m=8, 11, 15) Szignifikandus fixpontos, egyesekre normalizált törtszám, így a mantissza 1 és 2 közé eső törtszám, amelynek egész részét egyszeres és dupla pontosságú formátumban nem ábrázolnak (rejtett bit). Aritmetikai műveletek végrehajtásához a hardver vagy a szoftver a rejtett bitet valóságossá alakítja a karakterisztikát kettes komplemensű kódra alakítja előjelet megduplázza

Lebegőpontos számábrázolási tartományok Negatív úlcsordulás Kifejezhető negatív számok Negatív alulcsordulás Pozitív alulcsordulás Túlcsordulás kezelése ± a = a / = 0 a / 0 = / = NaN Kifejezhető pozitív számok Pozitív túlcsordulás Legnagyobb negatív normalizált szám Nulla Legkisebb negatív normalizált szám Legkisebb pozitív normalizált szám Legnagyobb pozitív normalizált szám Egyszeres pontosság: ±1,18 10-38... ±3,40 10 +38 Dupla pontosság: ±2,23 10-308... ±1,80 10 +308

IEEE 754 szerinti adatformátumok szignifikandus előjele karakterisztika szignifikandus 0<Kitevő<Max tetszőleges számérték normalizált 0 nem nulla számérték denormalizált 0 0 +/- nulla 111...111 0 +/- végtelen 111...111 nem nulla számérték nem szám (NaN) http://babbage.cs.qc.edu/ieee-754/

LSB inkrementálása Kerekítés A LSB utáni érték elhagyása A A 2 A 1 0 A 1 A 2 Pontos érték Ha az elvégzett művelet eredménye nem ábrázolható (pl. szorzat), kerekítést kell alkalmazni a legközelebbi ábrázolható számértékre; ha a távolság egyforma, akkor páros értékű számra, LSB=0 0 érték felé + vagy - felé Ha a kerekítéskor előálló számérték nem ábrázolható, akkor a processzor kivételt kezdeményez ha A maximális érték A 2 túlcsordulást ha A minimális érték A 1 alulcsordulást eredményez.

Bináris kódolt decimális számrendszerek Decimális számjegy BCD kód Gray kód Aiken kód Stibitz kód 2 az 5-ből kód 0 0000 0000 0000 0011 11000 1 0001 0001 0001 0100 00011 2 0010 0011 0010 0101 00101 3 0011 0010 0011 0110 00110 4 0100 0110 0100 0111 01001 5 0101 0111 1011 1000 01010 6 0110 0101 1100 1001 01100 7 0111 0100 1101 1010 10001 8 1000 1100 1110 1011 10010 9 1001 1101 1111 1100 10100

Decimális számjegy BCD kód Gray kód Hamming távolság 7 0111 0100 8 1000 1100 Hamming távolság 4 1 Decimális számjegy Gray kód 0 000 1 001 2 011 3 010 3 0 1 2 4 7 5 6 4 5 6 7 110 111 101 100

BCD kódok BCD Pakolt Zónázott EBCDIC ASCII Változó Fix hosszúságú

BCD kód Elsősorban az adminisztratív jellegű alkalmazásoknál használatos, mivel megfelel a felhasználó adatábrázolásának. A konvertálása a belső ábrázolási formából a külsőbe és vissza könnyű, ami ezeknél az alkalmazásoknál elnyomja a komplexebb és ezért lassúbb belső műveleteket (+-*/). Általában csupán néhány és egyszerűbb műveletet rendelnek a BCD számokhoz. a pakolt decimális formátum, amely minden bájtot két 4-bites mezőre (tetrád) bont, ezek mindegyike tartalmaz egy-egy BCD számjegyet. A belső műveletekhez - a hatékonysága miatt - ez az formátum használatos leginkább. BCD BCD BCD BCD BCD Előjel a zónázott formátumnál szintén minden bájtot felosztunk két 4-bites mezőre, a zóna (Z) és a szám (BCD) mezőre, és egy bájt egyetlen számjegyet specifikál. A zóna mezőt úgy választják meg, hogy a Z-BCD mező nyomtatható karakterkombinációt adjon. Egyébként a zóna mező számára ASCII kódban a 3 16 EBCDIC kódban az F 16 gyakran használatos. LSB Z BCD Z BCD Előjel BCD LSB

Az előjel kezelése BCD formátumban - az előjel állhat a legmagasabb helyiértéken, ami egyszerűsíti az outputot, pl. a nyomtatóra; - az előjel állhat a legalacsonyabb helyiértéken, ami egyszerűsíti az aritmetikai műveleteket, mivel az mindig a legalacsonyabb helyiértéken kezdődik, és fontos ismerni már a művelet elején mindkét operandus előjelét - pakolt formátumnál a legfelső bájt legfelső bitje vagy a legalacsonyabb helyiértékű bájt alacsonyabb tetrádja az előjel - zónázott formátumnál a legalacsonyabb helyiértékű bájt zónarészében helyezkedik el az előjel A pozitív és negatív előjelet lehet kódolva megadni, - felhasználva a számok által nem használt négy bit hat érvénytelen kombinációját (például az A, C, E, F = +, a B és D = -) - a + és - ASCII kódját felhasználva - külön előjelbájt, amelynek legfelső bitje az előjel, a többi bit kihasználatlan

Alfanumerikus adatok Alfanumerikus ábrázolásról akkor beszélünk, amikor számokat, betűket, különféle karaktereket önállóan, egymástól függetlenül, karakterenként akarunk ábrázolni. Az ábrázolás bájtonként egy-egy karakter formájában történik, akár EBCDIC, akár pedig ASCII kódot használunk. A char adattípus egyetlen bájton tárolja a karaktert. A sztring karakter típusú elemekből épül fel. A sztring adattípus szöveges információt tárol. A szöveg hossza 255 karakterig terjedhet.

ASCII kód Az ASCII (American Standard Code for Information Interchange) egy karakterkészlet és karakterkódolási szabvány, amely a latin ábécén alapul és az angol nyelvben és sok nyugat-európai nyelvben használatos betűket tartalmazza. Leggyakoribb felhasználása a számítógépeken, illetve szövegeket kezelő egyszerű eszközökön használt szövegek reprezentációja. A kódrendszer 127 karakterhelyet tartalmaz. Az első 32 karakter (0 31), valamint a 127 kódú karakter úgynevezett vezérlőkódokat tartalmaz. A 7 bites ASCII kódot a táblázatból az X1 oktális X2 hexadecimális értékeinek kiolvasásával lehet meghatározni. A bináris megfelelő az oktális és a hexadecimális értékek alapján előállítható. A táblázat megmutatja, hogy az ASCII kód tisztán 7 bites. A 8 bites ASCII a 7 bites kód kiegészített változata.

EBCDIC kód Az EBCDIC (Extended Binary Coded Decimal Interchange Code) a 80 oszlopos lyukkártyás adatfeldolgozó rendszerekben alakult ki. Ennek legnagyobb bázisa az IBM volt. A kód alapja a tízes számrendszer. A kezdeti időkben csak számokkal dolgoztak (BCD kódok), erre tökéletesen alkalmas volt a kártya lyukasztási rendszere. Az igények fejlődése következtében a meglévő hardver rendszereken kevés változtatással és a kód kibővítésével a szöveges információ is megfelelő szoftverrel feldolgozásra kerülhetett. A táblázatban a jel csoportok elhelyezkedése világosan mutatja, hogy a tízes számrendszer alapján hozták létre.

Logikai adatok Logikai adatnak a logikai műveletben szereplő változót értjük. Ennek ábrázolása elvileg egy bitet igényel. - a logikai adatot is a gép minimálisan egy bájton tárolja, mivel ez a legkisebb megcímezhető adategység. A logikai adat rögzítése a bájt legnagyobb helyiértékű bitjén történik, a többi bitpozícióban pedig bináris nulla van. Ez a fix vagy rögzített hosszúságú ábrázolás. - mivel bármilyen adaton végezhetünk logikai műveletet, így bármilyen adatot tekinthetünk logikai változónak is (karaktersorozatot, bitsorozatot, numerikus operandust, stb.). Ilyenkor a gép egymástól függetlennek tekinti az operandus egyes bitjeit, és mindegyikkel külön-külön végzi el a kijelölt műveletet. A logikai adat hossza ilyenkor a bitsorozattól függően változó, de mindig egész számú bájtot igényel. Amennyiben több logikai változót egyetlen gépi szóban tárolunk, szükség lehet egy mező kiemelésére, ami maszkolással oldható meg.

Egyéb adattárolási módok Öndefiniáló adatforma az adatot ábrázoló bitek mellett kiegészítő biteket alkalmaznak az adat típusának jelölésére Jelölt adattárolás (tagged storage) a tárolt adat kiegészül a felhasználás módját befolyásoló információval, pl. az adat típusa és paritásbit. Előnye hardver szintű adatkonverzió, hibaellenőrzés. Deszkriptoros tárolási forma (data descriptor) egyszerűbb adatstruktúrák kezelését biztosítja kiegészítő információval, pl. hozzáférési jogok, felhasználási cél, tárolási hely. Előnye hardver szintű írásvédelem, hibaellenőrzés. Összetett strukturális forma (object-oriented, capability addressing schemes) hardverszintű megoldás esetén segíti a szoftver működését. Jellemzői a kapcsolódó információkat egy egységben kezeli az objektum létrehozása/törlése nem külön adatműveletekkel végezhető az objektumhoz tartozó összes adat elérése egy ütemben lehetséges konverziója speciális utasítással oldható meg