COMMUNICATIE- EN COMPUTERVAARDIGHEDEN IN DE CHEMIE 4 e les Prof. Dr. Frank De Proft 22 oktober 2004 Derde les : Hoofdstuk 1 : Basisbegrippen Inleiding Enkele basisbegrippen 1
Vierde les : 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 individuele cijfers : binary digits of BITS Binaire getallen vs. decimale getallen :» decimale getal 294 : 2 10 2 + 9 10 1 + 4 10 0 = 294» binaire getal 11011 : 1 2 4 +1 2 3 + 0 2 2 +1 2 1 +1 2 0 = 16 + 8 + 0 + 2 + 1 = 27 Verwarring : 10 2 = 2 10, 11011 2 = 27 10 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 B = 11, D = 4 4 is even B = 011, D = 2 2 is even B = 0011, D = 1 1 is even B = 01011, D = 0 Ander voorbeeld : omzetten van 116 naar binair : Omzetten van 116 naar binair : 116 is even B = 0, D = 58 58 is even B = 00, D = 29 29 is oneven 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 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 : 2 32 = 4.294.967.296 verschillende bitpatronen» conventie : gelijke verdeling patronen over positieve en negatieve getallen» 2 32 /2 = 2 31 = 2.147.483.648 niet negatieve getallen (inclusief 0)» 2 32 /2 = 2 31 = 2.147.483.648 negatieve getallen Samengevat : Bitpatroon Decimale waarde 10000000000000000000000000000000 ( 2 31 = 2.147.483.648) 10000000000000000000000000000001 ( 2 31 1 = 2.147.483.647) 10000000000000000000000000000010 ( 2 31 1 = 2.147.483.646)... 11111111111111111111111111111101 ( 3) 11111111111111111111111111111110 ( 2) 11111111111111111111111111111111 ( 1) 00000000000000000000000000000000 ( 0) 00000000000000000000000000000001 ( 1) 00000000000000000000000000000010 ( 2) 00000000000000000000000000000011 ( 3)... 01111111111111111111111111111101 (2 31 3 = 2.147.483.645) 01111111111111111111111111111110 (2 31 2 = 2.147.483.646) 01111111111111111111111111111111 (2 31 1 = 2.147.483.647) 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» 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 : 2 31 kleinste bitpatroon : 10000000000000000000000000000000» negatieve gehele getal kleinst in absolute waarde : 1 grootste bitpatroon : 111111111111111111111111111111» voorkomen van negatieve nul» binaire optelling gemakkelijker = twee-complement notatie 6
2.3. Voorstellen van reële getallen Twee manieren van weergeven : decimaal of wetenschappelijk vb. 1234.56 vs. 1.23456E03 (1.23456 10 3 ) Wetenschappelijke notatie : normalisatie : 1234.56 1.23456 10 3 50.0 5.0 10 1 0.00099 9.9 10 4 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 10 3 (123456,3) 50.0 5.0 10 1 ( 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 7
Single precision (enkele precisie) : Exponent (8 bits)» 32 bits (4 bytes) Fractioneel gedeelte (23 bits)» mogelijke waarden : 1.75494351 10 38 tot 3.402823466 10 38 Double precision (dubbele precisie) : Tekenbit Tekenbit Exponent (11 bits)» 64 bits (4 bytes) Fractioneel gedeelte (52 bits)» mogelijke waarden : -2.2250738585072014 10 308 tot 1.7976931348623158 10 308 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 8
Voor dit systeem : genormaliseerde getallen : Lijst van alle positieve getallen : ±.10*2 e of ±.11*2 e met 2 e 3.10 (2 *2 2 = 1 / 8.10 (2 *2 2 = 2.11 (2 *2 0 = 3 / 4.10 (2 *2 1 = 1 / 4.10 (2 *2 3 = 4.11 (2 *2 1 = 3 / 2.10 (2 *2 0 = 1 / 2.11 (2 *2 2 = 3 / 16.11 (2 *2 2 = 3.10 (2 *2 1 =1.11 (2 *2 1 = 3 / 8.11 (2 *2 3 = 6 Distributie : bv. 2.2 en 2.4 : identiek!! 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 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 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 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 "" 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 : f : 01100110 Unicode f : 0000000001100110 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 digitaal :» discrete (eindig aantal) waarden» exacte weergaven belang van reproduceerbaarheid geluid :» inherent analoog» drukgolf met unieke amplitude (Pa) stemvork viool» trilling trommelvlies» interpretatie als geluid door hersenen fluit gong 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 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) 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 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 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) - 256 3 = 16.777.216 verschillende kleurencombinaties 14
typische HTML kleuren : Typische HTML kleuren Kleur (R,G,B) Kleur (R,G,B) Kleur (R,G,B) rood (255,0,0) groen (0,128,0) blauw (0,0,255) donkerrood (139,0,0) donkergroen (0,100,0) donkerblauw (0,0,139) crimson (220,20,60) olijf (128,128,0) lichtblauw (173,216,230) roze (255,192,203) lichtgroen (144,238,144) purper (128,0,128) violet (238,130,238) bruin (165,42,42) grijs (128,128,128) oranje (255,165,0) wit (255,255,255) 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 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 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 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, tekenprogramma s en grafische programma s Hoofdstuk 3 : Software 3.2.1. Tekstverwerking Microsoft Word Wetenschappelijke wereld : TeX (LaTeX) (wis-- en natuurkundingen, theoretisch chemici, ) Word/Wordperfect Wordperfect : WYSIWIG ( What( you see is what you 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