COMMUNICATIE- EN COMPUTERVAARDIGHEDEN IN DE CHEMIE 4e les
Prof. Dr. Frank De Proft
22 oktober 2004
Derde les : Hoofdstuk 1 : Basisbegrippen • Inleiding • Enkele basisbegrippen
1
Vierde les : Hoofdstuk 2 : Weergave van gegevens • Binaire getallen • Weergave van gehele getallen • Weergave van reële getallen • Weergave van karakters • Andere data
» geluiden » beelden
Hoofdstuk 3 : SOFTWARE
HOOFDSTUK 2 : WEERGAVE VAN GEGEVENS
2
2.1. Binaire getallen • Computers : werken als binaire apparaten • Output : twee mogelijke toestanden • Computer : » ontvangen van data » opslaan van data » verwerken van informatie • Binaire talstelsel : » twee getallen 0 en 1 » meer dan twee toestanden : groeperen reeks enkelvoudige binaire apparaten » groepen van binaire outputs : interpretatie als getallen : binaire getallen
Hoofdstuk 2 : Weergave van gegevens
• individuele cijfers : “binary digits” of BITS • Binaire getallen vs. decimale getallen : » decimale getal 294 :
2×102 + 9×101 + 4 ×100 = 294 » binaire getal 11011 :
€
1× 24 +1× 23 + 0× 22 +1× 21 +1× 20 =
€
16 +
8+
0+
2+1
= 27
• Verwarring : 102 = 210, 110112 = 2710
Hoofdstuk 2 : Weergave van gegevens
3
• Conversie van decimaal naar binair : algoritme : 1. Ga van start met B leeg 2. Zo lang D niet nul is herhaal de volgende sequentie : a. als D even is, voeg 0 aan de linker kant van B bij b. als D oneven is, voeg 1 aan de linker kant van B bij c. Deel D door twee, rond naar beneden af en ga terug naar 2a
Voorbeeld : omzetten 19 naar binair : Omzetten van 19 naar binair : 19 is oneven
→
B=
1,
D=9
9 is oneven
→
4 is even
→
B=
11,
D=4
B=
011,
2 is even
D=2
→
B=
0011,
D=1
1 is even
→
B=
01011,
D=0 Hoofdstuk 2 : Weergave van gegevens
Ander voorbeeld : omzetten van 116 naar binair : Omzetten van 116 naar binair : 116 is even
→
B=
0,
D = 58
58 is even
→
29 is oneven
→
B=
00,
D = 29
B=
100,
D = 14
14 is even
→
B=
0100,
D=7
7 is oneven
→
B=
10100,
D=3
3 is oneven
→
B=
110100,
D=1
1 is oneven
→
B=
1110100,
D=0
2.2. Voorstellen van gehele getallen • computers : behandelen informatie als bits • gemakkelijke opslag van gehele getallen (“integers”) • opslag gehele getal : binaire equivalent opslaan als bitpatroon
Hoofdstuk 2 : Weergave van gegevens
4
• vb. 19 : 10011 116 : 1110100 • binaire getallen : verschillende aantal bits • begin en einde van waarden in geheugen ? • meeste computers en programma’s : zelfde aantal bits : 32 • bijvoegen van 0’en aan de linkerkant : • vb. 19 : 00000000000000000000000000010011 • totaal : 232 = 4.294.967.296 verschillende bitpatronen » conventie : gelijke verdeling patronen over positieve en negatieve getallen » 232 /2 = 231 = 2.147.483.648 niet negatieve getallen (inclusief 0) » 232 /2 = 231 = 2.147.483.648 negatieve getallen
Hoofdstuk 2 : Weergave van gegevens
Samengevat : Bitpatroon 10000000000000000000000000000000 10000000000000000000000000000001 10000000000000000000000000000010 . . . 11111111111111111111111111111101 11111111111111111111111111111110 11111111111111111111111111111111 00000000000000000000000000000000 00000000000000000000000000000001 00000000000000000000000000000010 00000000000000000000000000000011 . . . 01111111111111111111111111111101 01111111111111111111111111111110 01111111111111111111111111111111
Decimale waarde (−231 = −2.147.483.648) (−231−1 = −2.147.483.647) (−231−1 = −2.147.483.646)
(−3) (−2) (−1) ( 0) ( 1) ( 2) ( 3)
(231−3 (231−2 (231−1
= = =
2.147.483.645) 2.147.483.646) 2.147.483.647)
Hoofdstuk 2 : Weergave van gegevens
5
• bitpatronen die beginnen met 1 : negatieve waarden • bitpatronen die beginnen met 0 : niet-negatieve getallen • Eerste bit : tekenbit vb. 3 : 0 (tekenbit) + 31-bits representatie van 3 00000000000000000000000000000011 vb. 100 : 0 (tekenbit) + 31-bits representatie van 100 00000000000000000000000001100100 • Belangrijke nadelen : » 10000000000000000000000000000000 : negatieve nul » decimale stelsel : slechts 1 nul, niet positief of negatief
Hoofdstuk 2 : Weergave van gegevens
» twee voorstellingen voor nul : onnodig + verwarrend » optelling van 2 binaire getallen onnodig gecompliceerd • exact tegengestelde manier bitpatronen toekennen aan negatieve getallen : » negatieve gehele getal grootst in absolute waarde : −231 kleinste bitpatroon : 10000000000000000000000000000000 » negatieve gehele getal kleinst in absolute waarde : −1 grootste bitpatroon : 111111111111111111111111111111 » voorkomen van negatieve nul » binaire optelling gemakkelijker = twee-complement twee-complement notatie
Hoofdstuk 2 : Weergave van gegevens
6
2.3. Voorstellen van reë reële getallen • Twee manieren van weergeven : decimaal of wetenschappelijk vb. 1234.56 vs. 1.23456E03 (1.23456 × 103)
• Wetenschappelijke notatie : normalisatie : 1234.56 → 1.23456 × 103 −50.0 → −5.0 × 101 0.00099 → 9.9 × 10−4
Hoofdstuk 2 : Weergave van gegevens
• Idenficatie van reëel getal door 2 bestanddelen : » fractionele gedeelte (rond komma) » exponent • Komma steeds tussen eerste en tweede cijfer : niet beschouwen bij weergave 1234.56 →
1.23456 × 103
→
(123456,3)
−50.0
→
−5.0 × 101
→
(−5,1)
0.00099 →
9.9 × 10−4
→
(99,−4)
• “floating point” getallen (drijvende komma getallen) • 1985 : Institute of Electrical and Electronics Engineers (IEEE) : » Standaard weergave voor de opslag van “floating-point” getallen » gevolgd door praktisch alle computer- en software constructeurs
Hoofdstuk 2 : Weergave van gegevens
7
• Single precision (enkele precisie) : Tekenbit
Exponent (8 bits)
Fractioneel gedeelte (23 bits)
» 32 bits (4 bytes) » mogelijke waarden : −1.75494351 × 10−38 tot 3.402823466 × 1038 • Double precision (dubbele precisie) : Tekenbit
Exponent (11
Fractioneel gedeelte (52 bits)
» 64 bitsbits) (4 bytes) » mogelijke waarden : -2.2250738585072014 × 10−308 tot 1.7976931348623158 × 10308
Hoofdstuk 2 : Weergave van gegevens
• fractioneel gedeelte + exponent : combinatie tot karakteristiek bitpatroon • sommige bitpatronen : speciale waarden : vb. NaN (Not-a-Number) resultaten onbepaalde wiskundige operaties : 0/0, ∞/∞, 0×∞, ∞-∞, … • oneindig aantal reële waarden : eindig aantal 32 en 64-bitpatronen • niet alle reële getallen exact weer te geven • afronding naar patroon dichtste tegen waarde • enkele precisie : precisie 7 cijfers na komma • dubbele precisie : precisie 16 cijfers na komma Illustratie : eenvoudig geval met precisie = 2 in het binair stelsel met −2 ≤ e ≤ 3 Hoofdstuk 2 : Weergave van gegevens
8
Voor dit systeem : genormaliseerde getallen : ±.10*2e of
±.11*2e
met −2 ≤ e ≤ 3
Lijst van alle positieve getallen : .10(2*2−2=1/8
.10(2*22= 2
.11(2*20= 3/4
.10(2*2−1=1/4
.10(2*23= 4
.11(2*21= 3/2
.10(2*20=1/2
.11(2*2−2 =3/16
.11(2*22 = 3
.10(2*21=1
.11(2*2−1= 3/8
.11(2*23 = 6
Distributie : bv. 2.2 en 2.4 : identiek !! Hoofdstuk 2 : Weergave van gegevens
• “overflow” : » getal te groot voor weergave in deze representatie » langs positieve (getal te groot) en negatieve (getal te klein) kant » positieve en negatieve overflow • “underflow” : » getal te klein voor weergave in deze representatie » langs positieve en negatieve kant » positieve en negatieve underflow
Hoofdstuk 2 : Weergave van gegevens
9
• Meeste programmeertalen : onderscheid gehele en reële getallen » gehele getallen : 32 bits patronen » reële getallen : floating-point voorstelling : single of double precision • Matlab : » gehele getallen : floating integers » reële getallen : double precision • Machine-eps : » kleinste verschil tussen getallen dat computer kan herkennen » maat voor de nauwkeurigheid van de machine » kleinste floating point + 1.000 : resultaat van ≠ 1.000 » Matlab : machine-eps : 2.2 × 10−16
Hoofdstuk 2 : Weergave van gegevens
2.4. Voorstellen van karakters • geen natuurlijke overeenkomst tussen karakters en binaire getallen • karakters : voorstellen als bitpatronen : arbitraire systemen • Standaard code om karakters voor te stellen : ASCII » American Standard Code for Information Interchange » karakter : specifiek 8 bits patroon » cijfers, kleine letters en hoofdletters : opeenvolgende binaire getallen » cijfers : binaire getallen met decimale waarden : 48 → 57 » hoofdletters : binaire getallen met decimale waarden : 65 → 90 » kleine letters : binaire getallen met decimale waarden : 97 → 122 Figuur 2.11 Hoofdstuk 2 : Weergave van gegevens
10
• rangschikking : mogelijkheid om karakterwaarden te vergelijken vb. Matlab : c1 = 'a' c2 = 'b' c1 < c2
» Resultaat : logische vector 1 (waar) » vergelijking ASCII codes van c1 en c2 • opeenvolging van karakters : string : sequenties van bytes
011001110110010101101110011011110110111101101101 "g "
"e "
"n "
"o "
"o "
"m ""
Hoofdstuk 2 : Weergave van gegevens
• Vergelijking van strings in Matlab : s1 = 'ann' s2 = 'ban' s1 < s2
Resultaat : logische vector 1 0 0 • 8 bits ASCII code : voldoende voor Nederlandse tekst • sommige alfabetten : 8 bits : te klein • steeds toenemende internationalisering : ASCII vervangen door Unicode » 16 bits code » ondersteuning meeste karaktersets uit vreemde talen » terugwaarts compatibel met ASCII vb. ASCII : Unicode
f:
01100110
f : 0000000001100110 Hoofdstuk 2 : Weergave van gegevens
11
2.5. Voorstellen van andere vormen van gegevens en data • efficiënte opslag en manipulatie complexe data : bijkomende technieken en algoritmen • omzetten data naar binaire getallen • afkorten binaire data : samendrukken 2.5.1. Geluiden • verschil digitaal vs. analoog • analoge weergave van data : » voorstelling data analoog aan de werkelijkheid » variatie over een oneindige reeks van waarden » opslag van data met hoge graad van variatie maar niet exact weergegeven dient te worden
Hoofdstuk 2 : Weergave van gegevens
• digitaal : » discrete (eindig aantal) waarden » exacte weergaven • belang van reproduceerbaarheid • geluid : » inherent analoog stemvork
» drukgolf met unieke amplitude (Pa)
viool
» trilling trommelvlies » interpretatie als geluid door hersenen
fluit
gong
Hoofdstuk 2 : Weergave van gegevens
12
• niet exacte weergave van analoge signalen : meestal geen probleem » menselijk oor : niet opmerken van bepaalde fouten en inconsistenties » duplicatie van opname : opstapeling van kleine fouten » na verloop van tijd : duidelijk verlies kwaliteit • digitale opnames » exact reproduceerbaar » herhaaldelijk copiëren zonder verlies van kwaliteit » omzetting analoge golf in sequentie van discrete waarden = digitale sampling : - meting amplitude op regelmatige intervallen - opslag van de sequentie van discrete set van meetwaarden
Hoofdstuk 2 : Weergave van gegevens
• digitale sampling : 200 dPa
100 dPa
0 dPa −100 dPa −200 dPa
• Nauwkeurige reproductie geluiden : zeer regelmatig metingen verrichten • geluid van CD kwaliteit : minimum 44.100 metingen/s • grote hoeveelheden ruimte voor stockage • technieken om grootte digitale geluidsbestanden te verminderen, vb. MP3 (factor 10)
Hoofdstuk 2 : Weergave van gegevens
13
2.5.2. Beelden • verschillende formats en compressietechnieken voor opslag beelden • Eenvoudigste manier : bitmap » figuur : grid van punten : Pixels (Picture elements) » pixel → bitpatroon » zwart-wit figuur : 1 pixel → 1 bit - 1 pixel → 1 bit - bit-waarde pixel : waarde van de hoofdkleur 11111111 11011011 11111111 10111110 10111110 10111101 11000001 11111111
Hoofdstuk 2 : Weergave van gegevens
• resolutie : scherpte of duidelijkheid afbeelding • hogere resolutie : » bitmaps onderverdeeld in kleinere pixels » elke bijkomende pixel : benodigde opslagruimte +1 bit • kleurenplaatje : » meer dan 1 bit per pixel » meestal : elke pixel : 24 bits (RGB waarde) » ontleding kleur in verschillende intensiteiten rood, groen, blauw - elk v/d 3 componenten : 8 bits - intensiteiten van 0 (min) tot 255 (max) - 2563 = 16.777.216 verschillende kleurencombinaties
Hoofdstuk 2 : Weergave van gegevens
14
• typische HTML kleuren : Typische HTML kleuren Kleur
(R,G,B)
Kleur
(R,G,B)
Kleur
rood
(255,0,0)
groen
(0,128,0)
blauw
donkerrood
(139,0,0)
donkergroen
(0,100,0)
donkerblauw
crimson
(220,20,60)
olijf
roze
(255,192,203)
lichtgroen
violet
(238,130,238)
bruin
oranje
(255,165,0)
wit
(128,128,0) (144,238,144) (165,42,42) (255,255,255)
lichtblauw
(R,G,B) (0,0,255) (0,0,139) (173,216,230)
purper grijs
(128,0,128) (128,128,128)
zwart
(0,0,0)
• vb. Microsoft Windows : Bitmap » extentie .BMP » voorstellen van iconen & achtergrondfiguren • Bitmaps : » eenvoudige te beschrijven en begrijpen » vereisen veel geheugen bij opslag complexe beelden
Hoofdstuk 2 : Weergave van gegevens
• Twee andere populaire formats voor opslag beelden : GIF en JPEG • start vanaf bitmap weergave van beeld • verschillende methoden om beelden compact te maken • Toepassing algoritmes om bitpatroon beeld te verkorten • GIF » Graphics Interchange Format » Herhalende patronen in beeld efficiënt opslaan » sterke reductie grootte van uiteindelijke weergave » verliesloos formaat : tijdens compressie gaat geen informatie verloren » oorspronkelijke beeld kan gerecupereerd worden » beelden met discrete grenzen (vb. lijnen) : noodzakelijke precisie
Hoofdstuk 2 : Weergave van gegevens
15
• JPEG » Joint Photographics Expert Group » gebruik van compressietechnieken die niet volledig omkeerbaar zijn » geschikt voor geleidelijke verandering van kleur, vb. kleurenfoto » opoffering precisie voor betere compressie • Bepaald gegeven : welke soort data ? vb. 01100110 = ? » gehele getal 97 » karakter “a” » exponent van een reeel getal » onderdeel geluid, beeld • aard gegeven door context en programma dat gegevens gebruikt
Hoofdstuk 2 : Weergave van gegevens
HOOFDSTUK 3 : SOFTWARE
16
3.1. Inleiding • Software vaak gebruikt door wetenschappers en ingenieurs : » presentatie van gegevens » analyse van data » berekeningen
3.2. Presentatie van informatie • Resultaten op logische en verstaanbare manier aan anderen weergeven • Welke software ? Afhankelijke aard informatie • Strikte minimum = tekstverwerker + rekenbladen, rekenbladen, tekenprogramma’ tekenprogramma’s en grafische programma’ programma’s Hoofdstuk 3 : Software
3.2.1. Tekstverwerking • Microsoft Word • Wetenschappelijke wereld : TeX (LaTeX) LaTeX) (wiswis- en natuurkundingen, natuurkundingen, theoretisch chemici, chemici, …) • Word/Wordperfect Word/Wordperfect : WYSIWIG (“ (“What you see is what you get” get”) • LaTeX : compilatie broncode Resultaat = geformatteerde tekstdocument Voordeel : platformonafhankelijkheid + gratis compilers voorhanden
Hoofdstuk 3 : Software
17
Voorbeeld : LaTeX code en resultaat :
Hoofdstuk 3 : Software
18