Bijlage D
Binair rekenen Bits, bytes en computerwoorden Alle huidige computersystemen zijn gebaseerd op digitale logica. Elk geheugenelement kent een geladen en een niet-geladen positie. Vaak wordt dit uitgedrukt door de waarde 1 voor geladen en 0 voor nietgeladen. Elk geheugenelement kan dus twee waarden aannemen. Deze waarde wordt wel een bit genoemd, een afkorting voor binary digit. Door het combineren van twee geheugenelementen zijn er vier combinaties mogelijk, namelijk 00, 01, 10 en 11. Ieder toegevoegd geheugenelement geeft een verdubbeling van het aantal mogelijkheden. Bij vier bits zijn er al zestien varianten. In de oertijd van computers werd er veel met 4-bitswaarden gewerkt. De vier bits samen werden nibble genoemd. Met deze vier bits kunnen waarden gegeven worden aan alle tien cijfers uit ons talstelsel. Er blijven dan nog zes waarden over. Bij elkaar is dat genoeg om bijvoorbeeld een telefoontoestel te adresseren. Omdat we nu veel werken met alfanumerieke gegevens zoals teksten, maken we combinaties van acht bits. Dit noemen we een byte. Met acht bits zijn er 28 mogelijkheden, ofwel 256 verschillende waarden. Het begrip bit zijn we al heel wat keren tegengekomen, bijvoorbeeld bij de bespreking van de adresbus en databus. Het aantal adreslijnen en datalijnen bepalen hoeveel bits er tegelijk over die lijnen gestuurd kunnen worden. Het aantal lijnen van de databus is bepalend voor de snelheid van de computer. De breedte van de databus wordt de woordbreedte genoemd. Het omgaan met bits is buiten de computer niet zo eenvoudig. Al bij een vrij klein getal ontstaat er een lange rij nullen en enen.
Bijlage D.indd 1
29-03-12 14:08
D2
H a rd w a re 3 /4
Daarom gebruiken we vaak het zestientallig stelsel, ook wel hexadecimaal, afgekort hex, genoemd. Bij dit talstelsel worden elke vier opeenvolgende bits door één getal weergegeven. Een nibble kan dus ook door één hexadecimaal cijfer aangegeven worden, een byte door twee. Ons tientallig stelsel (decimaal stelsel) kent echter slechts tien symbolen, de getallen 0 t/m 9.Voor het hexadecimale stelsel voegen we zes symbolen toe, de hoofdletters A t/m F. Voor de eerste 17 getallen in ons decimale stelsel krijgen we de volgende vergelijkingstabel. Let op dat we altijd bij nul beginnen te tellen. Figuur A1 Vergelijking tussen decimale, binaire en hexadecimale getallen
Het omrekenen van binaire naar hexadecimale getallen is simpelweg een kwestie van groeperen. Neem elke keer een nibble, dus vier bits, bij elkaar en kijk in de tabel hierboven. Als we bijvoorbeeld het getal 10011101 om willen zetten in een hexadecimaal getal, splitsen we het getal in twee nibbles 1001 en 1101 en zien in de tabel dat dit overeenkomt met 9 en D, zodat het hexadecimale getal 9D is. Om verwarring met het tientallige stelsel te voorkomen, zetten we achter het hexadecimale getal een hoofdletter H. Dus: 10011101 is gelijk aan 9D H. We kunnen ook omrekenen van binair naar decimaal of van hexadecimaal naar decimaal.Voor computergebruik heeft deze omrekening geen zin, maar mensen zijn nu eenmaal gewend aan het decimale stelsel. Bij het omrekenen maken we gebruik van machtsverheffen. Het grondtal is het aantal mogelijke waarden in een talstelsel, bij het binaire talstelsel dus 2 en bij het hexadecimale stelsel 16. De macht is afhankelijk van de plaats. Het meest rechtse cijfer krijgt de macht 0, daarnaast macht 1, macht 2, enzovoort. Kijk naar de voorbeelden in figuur A3.
Bijlage D.indd 2
29-03-12 14:08
Bijlage
D3
Figuur A2 Omrekenen van binair naar hexadecimaal
Figuur A3 Conversie naar decimale getallen
Op dezelfde wijze kunnen we natuurlijk elk talstelsel omrekenen. In de computerwereld is in een grijs verleden nog gebruikgemaakt van het achttallige of octaal talstelsel. Om letters en tekens te kunnen gebruiken, moeten we aan elke letter een waarde meegeven. Voordat de personal computer er was, werd daarbij veel gebruikgemaakt van de door IBM aangegeven EBCDIC-codering. bevatte een aantal onlogische elementen, zodat vanaf het begin van de personal computer gekozen is voor de ASCII-tabel. ASCII staat voor American Standard Code for Information Interchange. Bij de ASCII-tabel worden alle letters, cijfers, tekens plus een aantal (printer)stuurcodes gespecificeerd in 7-bits. Er zijn dus 27 = 128 mogelijkheden. Omdat de eerste personal computer al een 8-bits microprocessor had, kon het achtste bit (het hoogste) nog gebruikt worden voor 128 andere tekens. IBM heeft bij zijn personal computer gekozen voor: J een aantal in Europa gebruikte diakritische lettertekens zoals à, é, ö, ñ en ç;
Bijlage D.indd 3
29-03-12 14:08
D4
H a rd w a re 3 /4
Tabel A1 ASCII-tabel
J enkele muntsymbolen zoals voor het Britse pond £ en de Japanse yen ¥; J een aantal streepjes en blokjes om kaders te maken. De plaats van de diakritische lettertekens in de ASCII-tabel is erg onhandig, vooral als er gesorteerd moet worden op alfabet. De ASCII-tabel
Bijlage D.indd 4
29-03-12 14:08
Bijlage
D5
is nog steeds van toepassing in het MS-DOS besturingssysteem. Windows gebruikt echter al jaren de opvolger van de ASCII-tabel. Deze heet de ANSI-tabel. Ook deze heeft niet het eeuwige leven. Er zijn nogal wat landen waar afwijkende letters en tekens bestaan. De IJslandse taal kent een aantal doorgestreepte letters, in OostEuropa wordt het cyrillische en het Griekse schrift gebruikt, er bestaat ook Hebreeuws en Sanskriet en ga zo maar door. Inmiddels wordt hard gewerkt aan een nieuwe standaard, UNICODE genaamd. Hierbij worden twee bytes per letterteken gereserveerd, zodat er 65.536 verschillende tekens opgenomen kunnen worden. Plug and Play Het instellen van de juiste interrupt requests en DMA-kanalen kan een lastige puzzel zijn.Welk randapparaat kan een bepaalde instelling krijgen zonder een andere te dwarsbomen? Welke instellingen zijn voor het gehele computersysteem acceptabel? Met de komst van Windows 95 lijkt er een klein wonder geschied.Windows 95 kent namelijk als eerste besturingssysteem Plug and Play. Dit betekent zoveel als: stop de uitbreidingskaart erin en het besturingssysteem zoekt wel uit welke IRQ’s en DMAkanalen er ingesteld moeten worden. Met de hand uitzoeken is al moeilijk, maar ook Windows 95 komt er lang niet altijd uit.Vandaar dat Windows 95 soms smalend Plug and Pray wordt genoemd. Hoe dan ook, Windows 95 verlicht in vele gevallen wel het werk,Windows 98 doet het nog beter en misschien zal ooit een computersysteem zichzelf helemaal installeren. Machinetaal en andere computertalen De taal van nullen en enen is de enige taal waar de microprocessor mee overweg kan.We noemen dit machinetaal.Voor mensen is deze taal buitengewoon onvriendelijk. Het programmeren in machinetaal is slechts in heel eenvoudige toepassingen mogelijk. Daarom bestaan er allerlei talen, eigenlijk moeten we zeggen codes, die door de computer omgezet kunnen worden in machinetaal. Sommige van deze talen zijn uitsluitend geschikt voor een bepaalde processor. Deze machineafhankelijke talen, ook wel lagere programmeertalen genoemd, heten assembleertalen. Groot voordeel van deze talen is dat zij een razendsnelle verwerking kennen. Zij zijn wel volledig afhankelijk van een bepaalde microprocessor. De code is dus niet overdraagbaar naar een andere microprocessor. In de praktijk betekent dit bijvoorbeeld dat de oorspronkelijk
Bijlage D.indd 5
29-03-12 14:08
D6
H a rd w a re 3 /4
voor de Commodore 64 in assembleertaal geschreven spelletjes niet overgezet kunnen worden naar de IBM personal computer. De hogere programmeertalen zijn in principe wel systeemonafhankelijk.Van deze talen bestaan er tienduizenden, sommige zijn heel wijd verbreid, andere worden slechts door een enkeling gebruikt. Veel van deze talen zijn populair in een bepaalde branche, zoals COBOL bij banken en verzekeringsmaatschappijen en MUMPS in de medische wereld.Veel namen van computertalen zijn ontstaan als een afkorting. Heel mooie afkortingen zijn bijvoorbeeld APL, afkomstig van A Programmic Language en BASIC wat staat voor Beginners All Purpose Symbolic Instruction Code. Soms worden ook namen gebruikt.Voorbeelden hiervan zijn Pascal, genoemd naar Blaise Pascal die de eerste mechanische rekenmachine construeerde en Ada, naar de gravin Ada Augusta Lovelace. Zij werkte samen met Charles Babbage aan de Analytical Engine, in feite de eerste mechanische computer.Vrij algemeen worden BASIC, Pascal, C en C++ gebruikt. Daarnaast zijn er ook de grafische uitvoeringen van deze programmeertalen, meestal herkenbaar aan de toevoeging Visual, zoals Visual Basic. Samenvatting Bit = binary digit= 0 of 1 Nibble = 4 bits Byte = 8 bits Het binaire stelsel is een tweetallig stelsel (grondtal is 2) en kent alleen de waarden 0 en 1. Het hexadecimale stelsel is zestientallig (grondtal is 16) en kent de waarden 0-9 en A-F. Er bestaat een aantal omzettingen tussen lettertekens en binaire of hexadecimale waarde. EBCDIC 7-bits code, oude IBM-standaard. ASCII-tabel 7 tot 8-bits code, in gebruik bij MS-DOS. ANSI-tabel 8-bits code, in gebruik bij Windows. UNICODE 16-bits code. Machinetaal: de binaire code waarmee de computer kan omgaan Assembleertaal: speciaal voor bepaalde microprocessor geschreven code, daardoor snelle verwerking. Hogere programmeertalen: onafhankelijk van microprocessor geschreven code, daardoor zijn programma’s overdraagbaar naar andere microprocessors. Voorbeelden: Ada,APL, BASIC, C, C++, COBOL, Pascal.
Bijlage D.indd 6
29-03-12 14:08
Bijlage
D7
Opgaven
1. Een woord is gelijk aan: A. 8 bits. B. de maat van de databus. C. 2 bytes. D. 2 nibbles.
2. Neem over en vul in:Vier ... zijn gelijk aan een ... A. bytes woord B. bits byte C. bits nibble D. nibble byte
3. De enige taal die een computer kan begrijpen is: A. MS-DOS. B. COBOL. C. assembleertaal. D. machinetaal.
4. Een getal met een H erachter is een: A. binair getal. B. hexadecimaal getal. C. verborgen getal (hidden). D. decimaal getal.
5. De binaire tekenreeks 1100 0111 wordt in het hexadecimale talstelsel geschreven als: A. D9 B. 3E C. 83 D. C7
6. Het hexadecimale getal 0278 komt overeen met het decimale getal A. 0278 B. 0632 C. 0556 D. 0000 0001 0111 1000
Bijlage D.indd 7
29-03-12 14:08
Bijlage D.indd 8
29-03-12 14:08