Lemahieu_Hoofdstuk_2_(2012-13)

advertisement
Grondslagen v/d beleidsinformatica
Hoofdstuk 2: Binaire gegevenscodes
2.1 OVERZICHT
Hoe worden gegevens op basis van gegevensverwerking gecodeerd behandeld en opgeslagen?
--> computers werken met binaire getallen
Gegevens worden dus gecodeerd in binaire vorm
2.2 Wat willen we met dit hoofdstuk bereiken
2.3 Inhoud
ZIE PAGINA 9 – 10 VOOR HET OVERZICHT
2.4 BINAIRE GETALLEN: BITS EN BYTES
2.4.1 Digitale en analoge systemen
Computer werkt op basis van stroomstoten
--> gegenereerd op precieze tijdstippen door klok
Stroompulsen kan aan of uit zijn
0: de afwezigheid v/d puls
1: de aanwezigheid v/d puls
De symbolen 0 en 1 zijn een BIT (Binary Digit)
Computer is hierdoor digitaal systeem
--> enkel beperkt aantal toestanden kan men voorstellen (computer: 2)
Analoge systemen kunnen continuüm waarden voorstellen, onbeperkt
Voorbeeld: volumeknop v/e radio
Gegevens: gecodeerde voorstellingen van verschijnselen in werkelijkheid
--> codering op basis van woorden, klanken, getallen, kleuren en tekens
Men gebruikt voor computer digitale codering aangepast aan de computer
Er zijn verschillende gegevenssoorten
- Booleaanse (PandA) gegevens: gegevens die overeenkomen met al dan niet aanwezig zijn van
bepaald fenomeen
- Numerieke gegevens: gegevens voorgesteld door getallen (lengte, prijs, hoeveelheid, wedde, …)
- Aflanumerieke gegevens: gegevens voorgesteld door cijfertekens en lettertekens (naam, adres, …)
- Grafische gegevens: gegevens voorgesteld door afbeeldingen, visuele voorstellingen
(zowel stil als bewegend)
- Geluid: gegevens die overeenkomen met bepaalde klanken
- Specifieke computergegevens: opdrachten (machine-instructies) die aan computeronderdeel
gegeven worden
Het is niet altijd even simpel zaken te digitaliseren
Sommige zaken zijn analoog en moeten digitaal worden (grafische, geluidsgegevens)
1
Jeroen De Koninck – HIRB – 2012-2013
2.4.2 Basisbegrippen v/h binaire talstelsel
Binair talstelsel is een positioneel talstelsel (zoals het Arabische)
--> waarde v/h symbool verandert naargelang de plaats v/h symbool
Voorbeeld: 5 ≠ 57 ≠ 506 (waarde van 5 is hier overal anders)
Het binair talstelsel heeft als basisgetal het getal 2
--> er zijn namelijk twee symbolen in het talstelsel (0/1)
Voorbeeld: bij het Arabische zijn dit er 10, de cijfers
Voorbeeld:
Het getal 100 bestaat uit drie symbolen, die een positienummer krijgen
--> 0 in positie 0
--> 0 in positie 1
--> 1 in positie 2
! De waarde v/e positie is gelijk aan het basisgetal tot de macht (positienummer)
Bijvoorbeeld in Arabisch talstelsel:
Waarde van een getal in positie 0 is 1, want 100 is 1
Waarde van een getal in positie 1 is 10, want 101 is 10
Waarde van een getal in positie 2 is 100, want 10² is 100
De waarde v/h symbool in een positie is gelijk aan:
Symbool x waarde v/d overeenkomstige positie
De waarde v/e getal is dan de som v/d gewogen waarden v/d symbolen
Voorbeeld: 100
(1 x 10²) + (0 x 101) + (0 x 100) = 100 + 0 + 0 = 100
Bij binaire getallen is het basisgetal 2
Bijgevolg zou daar 100 gelijk zijn aan
(1 x 2²) + (0 x 21) + (0 x 20) = 4 + 0 + 0 = 4
! Getallen na de komma krijgen een exponent met een – ervoor (-1, -2, -3...)
Test oefening: waarde v/h binair getal 101110101,111 = 373,875
2.4.3 Bits en Bytes
Symbolen van binair talstelsel (0/1) zijn bits
--> bit is de kleinste gegevenseenheid v/d computer
Vaak voegt men acht bits samen
--> byte: 28 = 256 combinaties van 0 en 1 in één byte
Byte laat 0 tot 225 (28 - 1) getallen toe
Bij N posities laat men bijgevolg 2N verschillende combinaties toe
--> deze combinaties gaan van 0 tot en met 2N - 1
2
Jeroen De Koninck – HIRB – 2012-2013
1 Byte is zeer beperkt
--> werken met veelvouden
1 KB
210B
1024 bytes
10³ bytes
10
20
1 MB
2 KB
2 B
1.048.576 bytes
106 bytes
10
30
1 GB
2 MB
2 B
1.073.741.824 bytes
109 bytes
1 TB
210 GB
240B
1.099.511.627.776 bytes
1012 bytes
10
50
1 PB
2 TB
2 B
1.125.899.906.842.624 bytes
1015 bytes
! Bij communicatietechnologie gebruikt men nog steeds kilobits en megabits, deze zijn 1/8ste waard
2.5 BEWERKINGEN IN HET BINAIRE STELSEL
2.5.1 Optelling
Bij het optellen van binaire getallen, gebruikt men volgende regels:
0+0=0
0+1=1
1+0=1
1 + 1 = 10 (men brengt een één over naar de volgende positie)
Voorbeeld: 19 + 31 = 50
19 = 1 x 24 + 1 x 21 + 1 x 20
19 = 16 + 2 + 1
19 = 10011
31 = 1 x 24 + 1 x 23 + 1 x 2² + 1 x 2 + 1
31 = 16 + 8 + 4 + 2 + 1
31 = 11111
19 + 31 = 50
Vervolgens:
10011
+11111
---------110010
2.5.2 Aftrekking
0-0=0
1-1=0
1-0=1
0 - 1 = 1 (men brengt een één over naar de vorige positie)
Vaak worden aftrekkingen herleid tot optellingen door de computer
--> Gebruikt van een tweecomplement
Men bekomt de complement door van elk getal v/h grondtal -1 af te trekken (op elke positie)
Men bekomt de tweecomplement door bij de complement 1 op te tellen op getal met positie 0
3
Jeroen De Koninck – HIRB – 2012-2013
Voorbeelden:
Origineel
100
1001
1111
1010
10110
00000
Tussenresultaat
011
0110
0000
0101
01001
11111
Aftrekking
Som van de tweecomplement en het aftrektal
--> ! We werken met een vast aantal posities
De waarde v/h eerste getal is een tekenbit
Is de tekenbit 0 dan is het getal positief
Is de tekenbit 1 dan is het getal negatief
ZIE BOEK PAGINA 15 VOOR VOORBEELDEN
2.5.3 Vermenigvuldiging
Analoog aan decimale vorm
7 x 5 = 35
111
x 101
-------1 x 111
0 x 111
1 x 111
-------111
000
111
-------Optellen
= 100011
2.5.3 Deling
Analoog aan decimale vorm
NIET GESNAPT
4
Jeroen De Koninck – HIRB – 2012-2013
Tweecomplement
100
0111
0001
0110
01010
(1)00000
2.6 VOORSTELLING VAN PANDA GEGEVENS
2.6.1 Enkelvoudige PandA gegevens
Vooral bij logica hanteren van true/false gegevens
--> true/false zijn geen alfanumerieke waarde, ze geven de aanwezigheid of de afwezigheid weer
PandA staat voor Presence and Absence
We kunnen de interpretatie in een tabel gieten via:
PRESENT
True
1
ON
YES
+
WAAR
VOOR
YANG
...
ABSENCE
False
0
OFF
NO
ONWAAR
TEGEN
YIN
...
Deze gegevens vormen de basis voor ICT-verwerking
--> het is de basis van digitale voorstelling
PandA gegevens kan men ook aanwenden voor voorstellen/opslaan van gegevens op:
- Magnetische media (harde schijven)
- Optische media (Cd’s en DVD’s)
- Computergeheugen
2.6.2 Hexadecimale notatie en groepen van PandA gegevens
Binnen de ICT bestaat er een hexadecimaal talstelsel
--> het grondtal is hier 16
Men gebruikt:
0 - 9 voor de cijfers
10 voor A
11 voor B
12 voor C
13 voor D
14 voor E
15 voor F
5
Jeroen De Koninck – HIRB – 2012-2013
Men stelt hexadecimale cijfers vaak binair voor in groepen van 4 bits (tetrade)
Voorbeelden:
0
0000 AAAA
1
0001 AAAP
3
0011 AAPP
F
1111 PPPP
Een 1 wijst op een P
Een 0 wijst op een A
Voorbeeld: het hexadecimaalgetal 1D3
1 = 1 x 162
D = 13 x 161
3 = 3 x 160
= 467
0001 1101 0011
Men kan bovenstaande rij ook zuiver binair maken
000111010011
--> Vervolgens schrijven als de som van machten van 2
--> 467
! Hexadecimale codes worden ondermeer gebruikt voor kleurencodes
--> Hexadecimaal getal met slechts twee cijfers geeft een RGB kleur aan
(Zie photoshop, HTML, CSS)
2.7 VOORSTELLING VAN NUMERIEKE GEGEVENS
Gehele getallen: kan men voorstellen via zuiver binaire vorm
Reële getallen: werken met drijvende komma voorstelling, en graden van precisie
! Vaak afrondings- en berekeningsfouten
2.7.1 Zuiver binaire voorstelling van gehele getallen
Zuivere binaire voorstelling
--> vast aantal bits voor de opslag v/e getal
Voorbeeld: 32 bits of 16 bits
De eerste bit blijft de tekenbit
--> 0 is positief
--> 1 is negatief
Vaak vult men getallen links aan met 0’en tot men aan de basis voorstelling komt
Zo schrijft men het getal 29 niet als
11101 maar wel als
0 0000000000000000000000000011101
6
Jeroen De Koninck – HIRB – 2012-2013
Negatieve getallen stelt men vaak gewoon voor met hun tweecomplement
--> hierdoor komt de tekenbit op 1 te staan
1 1111111111111111111111111100011 is bijvoorbeeld -29
Een getal bevat 32 bits waarvan 1 de tekenbit
Men kan dus getallen voorstellen van -231 tot 231-1
De negatieve waarde gaan van -1 tot -2.147.483.648
De positieve waarde gaan van 0 tot 2.147.483.647
2.7.2 Voorstelling van reële getallen in drijvende komma vorm
Voor niet gehele getallen en zeer grote/kleine getallen gebruikt men drijvende komma vorm
--> wetenschappelijk notatie:
mre
m : mantisse
r : radix/grondtal
e : exponent
In normale wetenschappen is het grondtal 10 (denk aan wetenschappelijke notatie)
Bij computersystemen is dit anders:
2 voor kleine systemen
16 voor computerversie v/d drijvende komma-voorstelling
32 voor getallen (enkele precisie)
64 voor getallen (dubbele precisie)
Bij IBM-standaarden stelt
- Bit 1: tekenbit
- Bit 2 tot 8: exponent (effectief getal)
- Bit 9 tot 64: mantisse (komma getal)
Men bekomt een getal via de formule:
-1(tekenbit) x mantisse x 16(exponent - 64)
Zo is het getal:
0
1000001
101000...000 (tot 64 bits)
--> 0: het getal is positief
--> 1000001: de exponent is 65
--> 101....: 1 x 2-1 + 1 x 2-3 = de mantisse is 0.625
Het getal is dus:
1 x 0.625 x 16(65-64) = 0.625 x 16 = 10
De voorstellingen 32 bit en 64 bit hebben bijgevolg enkel betrekking op de precisie v/h getal
--> de maximale waarde is voor beide hetzelfde namelijk bepaald door de exponent
Extreem grote getallen worden oneindig
Extreem kleine getallen worden 0
Zo kan a + b = a zonder dat b = 0
7
Jeroen De Koninck – HIRB – 2012-2013
2.8 VOORSTELLING VAN ALFANUMERIEKE GEGEVENS
Alfanumerieke gegevens of karaktertekens
--> bevatten de 26 letters v/h alfabet
--> bevatten de cijfers van 0 t.e.m. 9
--> bevatten de lees-, functie- en bijzondere tekens
Ook voor deze voorstelling heeft men enkel nullen en enen
--> codering is noodzakelijk
Meestal gebruikt men 8 bits voor de voorstelling van één teken
Men kan daardoor maximaal 28 tekens voorstellen of 256 tekens
Voor elke code heeft men een codetabel die een bitrij toewijst aan elk symbool
2.8.1 EBCDIC voorstelling
Wordt voornamelijk gebruikt op IBM MainFrame systemen
EBCDIC: Extended Binary Coded Decimal Interchange Code
ZIE TABEL PAGINA 21
2.8.2 ASCII voorstelling
Uitgegeven door ANSI
--> American National Standards Institute
--> eveneens een 8-bitcode
ASCII-code: American Standard Code for Information Interchange
Cijfers krijgen hun gewone code voorgaand door 0011
--> ZIE TABEL PAGINA 21
Ook een spatie is opgenomen als 0010 0000
--> hierdoor zal bij sortering woorden met spaties eerst staan
Voorbeeld:
Debruyne
Dedene
De Haene
--> hersorteren als
De Haene
Debruyne
Dedene
2.8.3 UNICODE voorstelling
Meest recente coderingssysteem
--> kan alles coderen uit alle talen
UNICODE wordt gezien als de vervanger van alles andere codes in de toekomst
De UNICODE is een 16–bitcode en voorziet 65.536 combinaties (65.000 is genoeg)
De eerste tekens zijn uit de ASCII-code daarnaast andere talen
8
Jeroen De Koninck – HIRB – 2012-2013
2.9 VOORSTELLING VAN MULTIMEDIA GEGEVENS
Verwerking van grafische en geluidsgegevens
--> deze nu ook digitaal (ontstaan van digitale televisie en radio)
2.9.1 Voorstelling van grafische gegevens
2.9.1.1 Stilstaande beelden: bitmap
Weergave via bitmapnotatie of rasternotatie
--> we gaan grafische zaken opsplitsen in eindig aantal punten
Men verdeeld een grafisch element in groot aantal kleine punten
--> pixels
Elk punt wordt omgezet naar een bitrij met (kleur)-kenmerken
Computer begrijpt en verwerkt dit getal
ZIE VOORBEELD PAGINA 23
We kunnen met N bits, 2N tinten weergeven
! Kwaliteit v/h beeld wordt niet enkel bepaald door het aantal tinten per pixel
We moeten ook rekening houden met resolutie v/e beeldscherm
Dit is het aantal pixels in horizontale en verticale richting dat een scherm kan weergeven
Soms gebruikt men ook dpi (dots per inch)
Bijgevolg hebben foto’s vaak een erg grote opslagcapaciteit nodig
Voorbeeld:
Afbeelding van 8 x 10 inch²
Resolutie van 300dpi
Daardoor is de resolutie 90.000 per inch²
Nog een keer maal 80 is 7.2 megapixels
Neem dan nog 3 bytes per pixel waardoor je kopt op 21.6 MB
Dit heeft effect op opslagcapaciteit en netwerkcapaciteit voor werking/doorsturen
Men gaat vaak afbeeldingen via compressietechnieken verkleinen om beide problemen op te lossen
Er zijn redelijk wat extensies die bitmapnotatie ondersteunen:
JPG: Joint Photographic Experts Group
GIF: Graphics Interchange Format
BMP: Windows Bitmap
TIFF: Tagged Image File Format
PNG: Portable Network Graphics
9
Jeroen De Koninck – HIRB – 2012-2013
2.9.1.2 Stilstaande beelden: vectornotatie
Men gaat de grafische gegevens voorstellen als een lijst van instructies
--> hoe de figuur construeren
Voornamelijk gebruikt bij tekenprogramma’s zoals CorelDRAW
Vectornotatie heeft voordelen t.o.v. bitmapnotatie
- Minder opslagcapaciteit
- Makkelijkere herschaling/veranderingen mogelijk zonder kwaliteitsverlies
Wel ook een beperking:
- Vectornotatie enkel mogelijk voor vaste geometrische figuren (bv. niet voor echte foto’s)
2.9.1.3 Bewegende beelden
Film is een snelle opeenvolging van stilstaande beelden (FRAMES)
Elke frame is een foto van bitmap-formaat
De opslagcapaciteit en voorstellingswijze worden bepaald door:
- individuele bitmap-formaat
- snelheid v/d opeenvolging (frame rate - fps - frames per second)
Stel voorbeeld film van 1 uur
- 640 x 480 pixels
- 30 fps
- 256 kleuren (28)
--> opslagcapaciteit: 3600 x 30 x 640 x 480 x 8 = 30,9 GB
Elk format (MPEG, AVI, DIVX) gebruikt dus één of andere vorm van compressie
2.9.2 Voorstelling van geluidsgegevens
Geluid: continue analoge signalen
--> het zijn trillingen met een:
- frequentie (aantal trillingen per seconde, meer trillingen is hoger geluid)
- amplitude (hoogte v/d golven, hogere trillingen is luider geluid)
Men moet keuzes maken:
- Eerste keuze: sampling: bepaald het aantal samples per seconde (sampling rate)
--> hoge sampling rate wijst op veel metingen en nauwkeurigere opname
Menselijk oor gebruikt frequentie van 20.000 Herz
--> 20.000 trillingen per seconde
Voor een digitale geluidsopname gaat men dit verdubbelen
--> 44.100 herz per seconde wordt gebruikt
- Twee keuze: nauwkeurigheid v/d sampling: aantal bits om de hoogte aan te duiden
--> meer bits wijst op nauwkeurigere omschrijving v/d amplitude
Per extra bit verdubbeld de nauwkeurigheid
10
Jeroen De Koninck – HIRB – 2012-2013
Voor albums gebruikt men meestal 16 bits of 216
Bijgevolg zou een minuut digitale muziek gelijk zijn aan:
60 seconden x 44.100 samples x 16 bits x 2 (stereo) = meer dan 10 mb
Bij het opnemen van geluid:
--> analoog signaal wordt digitaal
Bij het afspelen van geluid:
--> digitaal geluid wordt analoog
Meest bekende opslagmethoden zijn WAV (wave) en MP3
2.9.3 Datacompressie
Vooral bovenstaande gegevens (multimedia) zal men willen voorzien van compressie
--> er zijn veel methoden tot compressie
Datacompressie: representatie van digitale gegevens transformeren naar andere vorm (minder bits)
Deze compressie geeft men weer via een compressieratio
Compressieratio: GROOTE ORIGINELE BESTAND/GROOTE GECOMPRIMEERDE BESTAND
Een grote compressieratio wijst op een sterke compressie en een kleiner eindbestand
! Compressieratio afhankelijk v/d gebruikte algoritmen CODECs (COmpression DECompression)
Er zijn CODECs voor alle soorten gegevens
--> PKZIP (voornamelijk bekend als WINZIP)
Maar ook CODECs gericht op één soort gegevens gericht
--> Specifieke CODECs vaak hoger compressieratio dan generieke CODECs
We hebben twee grote soorten CODECs
Lossless CODECs
--> Na decompressie v/h gecomprimeerde krijgt men bit voor bit exact het oorspronkelijke bestand
Voorbeeld: voornamelijk van toepassing bij tekstbestanden, PKZIP is een lossless CODEC
Vaak maakt men gebruik van run lenght encoding
Men gaat een patroon dat zich meermaals voordoet slechts één maal opslaan
Daarnaast definieert men het voorkomen van dit patroon
Voorbeeld: eeeee wordt 5 x e
Voorbeeld: foto met rode strook, dit kan men ook weergeven als enkele keren die pixel
Vaak maakt men gebruik van adaptive pattern substution
Men gaat een complex patroon weergeven als een korter patroon
Via een soort van “woordenboek” legt men de codes aan
Voorbeeld: zxyw zxyw zxyw = k k k met k = zxyw
11
Jeroen De Koninck – HIRB – 2012-2013
Lossy CODECs
--> Enig verschil na decompressie is toegestaan
Voorbeeld: fotobestanden, videobestanden en geluidsbestanden
--> vaak na decompressie klein beetje verschil, maar nauwelijks merkbaar
Men spreekt van een verlies
--> Men verliest kwaliteit in ruil voor compressie
Gebruik maken van JPG (stilstaande beelden)
--> Men gaat stilstaande beelden niet per pixel aan bits beperken
Dit zou leiden tot erg veel kwaliteitsverlies
Men analyseert het menselijk vermogen om verschillen te onderscheiden
Sommige verschillen zien mensen amper tot niet
--> Men laat sommige dingen weg, waardoor men een hogere compressieratio kan bekomen
Gebruik maken van MPEG (bewegende beelden)
--> Men gaat elke frame apart op basis van JPG comprimeren
--> Men doet aan interframe coding waarbij men verschillen tussen opeenvolgende frames weglaat
Gebruik van MP3 (geluid)
--> Men gaat te hoge/lage tonen voor menselijk oor weg doen
2.10 VOORSTELLING VAN COMPUTEROPDRACHTEN
Nood aan programmaopdrachten in het intern geheugen
--> laat verwerking v/d gegevens toe
Ook deze instructies worden intern opgeslagen als bits
Instructie bestaat uit:
- Operator: de opdrachtcode: nodig voor de bewerking
- Operands: één of meer operands die aangeven welke gegevens te gebruiken
Een computerprogramma kan in twee vormen bestaan
- broncode: geschreven door programmeur in programmeertaal (Eiffel, Java, C++, ...)
--> vormt de ASCII-code
- machinetaalcode: vertaalt de broncode zodat deze uitgevoegd kan worden (compilatie)
--> gebeurd via compiler
De machinetaalcode zal uitgevoerd worden, maar de broncode is veel meer verstaanbaar
--> we herschrijven dus de broncode en generen daarmee een nieuwe machinetaal
Voorbeeld:
We hebben een opdracht in machinetaal met twee operands in zuivere binaire vorm
--> deze bevinden zich in registers in de ALU
De opdracht bestaat uit twee bytes:
- de instructiecode
- de nummer v/d register waarin de operand zich bevindt
De tweede nummer (die v/d register) wordt opgedeeld in links en rechts voor elke operand
12
Jeroen De Koninck – HIRB – 2012-2013
Voorbeeld:
0001 1010
0010
0101
Opdrachtcode: 0001 1010
Nummer v/h eerste register: 0010 (2)
Nummer v/h twee register: 0101 (5)
Men zal in dit voorbeeld de getallen uit de twee registers optellen
--> het resultaat komt in register twee
De capaciteit v/d operand is afhankelijk v/d plaats waar deze zich bevindt
- intern geheugen: meer dan één byte
- registers: 4 bits
! Instructies worden dus ook gecodeerd volgens regels van 0-en en 1-en
2.11 ZELFCONTROLE BIJ CODES
Bij het verwerken van gegevens worden groepen van bits vaak rondgestuurd
- Kan intern
- Kan naar randapparatuur
- Kan naar een andere computer
--> fouten kunnen zich optreden
Voorbeeld: wegvallen v/d stroompuls bij het overzetten (signaal)
Men gebruikt vaak zelfcontrolerende codes om de computer zelf fouten te laten opsporen
--> We geven aan de gebruikte code een pariteitspositie
Men kan gebruik maken van een
- Pare pariteitsregel: men brengt een 1 aan in de pariteitspositie bij oneven aantal 1-bits
- Onpare pariteitsregel: men brengt een 1 aan in de pariteitspositie bij even aantal 1-bits
Hierdoor worden de originele bits + de pariteitsbit gelijk aan de zaak voor de pariteitspositie
Voorbeeld onpare partiteitsregel:
Te coderen symbool
A
K
W
ASCII-code
0100 0001
0100 1011
0101 0111
Pariteitsbit
1
1
0
Totaal aantal 1-bits
3
5
5
De voorkeur geniet om de onpare regel te gebruiken
--> de 8-bits code zal een 9-bitscode worden steeds met een onpaar aantal 1-bits
Zo kan men analyseren: wanneer de 9-bit code bestaat uit een even aantal 1-bits is er een fut
--> men zal opnieuw moeten uitvoeren
We geven de voorkeur aan onpare regel omdat:
--> wanneer alle 1-bits wegvallen kan men fouten niet opsporen via pariteitsregel
Want bij onpare: als alles bits 0-en zijn, kan dit niet, want de onpare pariteitsregel zou een 1 vooraan
moeten zetten
13
Jeroen De Koninck – HIRB – 2012-2013
Download