ASCII (tekenset)

ASCII (American Standard Code for Information Interchange), ook US-ASCII en ANSI_X3.4-1968 genoemd,[1] is een standaard 7-bits-tekencodering om Latijnse letters, cijfers, leestekens en enkele andere tekens en stuurcodes te representeren en aan ieder teken in die reeks een geheel getal te koppelen, waarmee dat teken kan worden aangeduid. De code werd ontworpen door een commissie met o.a. Hugh McGregor Ross en Bob Bemer.

De 95 afdrukbare (zwarte) ASCII-tekens octaal 040-176 (32-126 decimaal)
Stuurcodes zijn blauw onderstreept

Standaard-ASCII

De standaard ASCII-tabel (later ook wel ASCII-I[2] genoemd) bestaat uit de 94 zichtbare tekens (hoofdletters en kleine letters, cijfers, leestekens en enkele andere symbolen), de spatie, en 33 stuurcodes. De stuurcodes representeren geen zichtbare tekens, maar zijn opdrachten aan uitvoerapparaten of geven informatie over de gegevens die verstuurd worden.

Van de stuurcodes komen met name carriage return en/of line feed in vrijwel elke platte tekst voor.

Telex met ponsband (links)

De ASCII codes zijn oorspronkelijk ontworpen voor telexcommunicatie. Sommige stuurcodes herinneren er nog aan dat de uitvoer vroeger niet op een beeldscherm werd getoond, maar met een TTY, een door een computer aangestuurde soort typemachine, op papier werd afgedrukt. Het teken bell deed dan ook werkelijk de bel van de teletype rinkelen, en een carriage return deed de wagen teruglopen, net als bij een typemachine.

De laatste code, DEL, bestaat binair uit zeven enen. Deze code werd bij het lezen van ponsband genegeerd, zodat deze kon worden gebruikt om een fout te herstellen: als men per ongeluk het verkeerde teken had ingeponst, ponste men er eenvoudig een DEL (met overal gaten) overheen, zodat het verkeerde teken werd gewist.

De 128 ASCII-codes zijn te zien in de tabellen rechts en onder.

De 94 zichtbare tekens en de spatie, en hun representaties als byte, zijn inmiddels exact hetzelfde overgenomen in uitbreidingen zoals ANSI, ISO 8859-1 en UTF-8.

Tabel van ASCII-codes

Besturingscodes spatie, afdrukbare tekens en delete
DecOctHexBinairTeken DecOctHexBinairTeken   DecOctHexBinairTeken   DecOctHexBinairTeken
0000000000000NUL (Null) 32040200100000SP 64100401000000@ 96140601100000`
1001010000001SOH (Start of Header) 33041210100001! 65101411000001A 97141611100001a
2002020000010STX (Start of Text) 34042220100010" 66102421000010B 98142621100010b
3003030000011ETX (End of Text) 35043230100011# 67103431000011C 99143631100011c
4004040000100EOT (End of Transmission) 36044240100100$ 68104441000100D 100144641100100d
5005050000101ENQ (Enquiry) 37045250100101% 69105451000101E 101145651100101e
6006060000110ACK (Acknowledgement) 38046260100110& 70106461000110F 102146661100110f
7007070000111BEL (Bell (geluidssignaal)) 39047270100111' 71107471000111G 103147671100111g
8010080001000BS (Backspace) 40050280101000( 72110481001000H 104150681101000h
9011090001001HT (Horizontal Tab) 41051290101001) 73111491001001I 105151691101001i
100120A0001010LF (Line Feed (nieuwe regel)) 420522A0101010* 741124A1001010J 1061526A1101010j
110130B0001011VT (Vertical Tab) 430532B0101011+ 751134B1001011K 1071536B1101011k
120140C0001100FF (Form Feed) 440542C0101100, 761144C1001100L 1081546C1101100l
130150D0001101CR (Carriage Return (wagenterugloop)) 450552D0101101- 771154D1001101M 1091556D1101101m
140160E0001110SO (Shift Out) 460562E0101110. 781164E1001110N 1101566E1101110n
150170F0001111SI (Shift In) 470572F0101111/ 791174F1001111O 1111576F1101111o
16020100010000DLE (Data Link Escape) 480603001100000 80120501010000P 112160701110000p
17021110010001DC1 (Device Control 1 (XON)) 490613101100011 81121511010001Q 113161711110001q
18022120010010DC2 (Device Control 2) 500623201100102 82122521010010R 114162721110010r
19023130010011DC3 (Device Control 3 (XOFF)) 510633301100113 83123531010011S 115163731110011s
20024140010100DC4 (Device Control 4) 520643401101004 84124541010100T 116164741110100t
21025150010101NAK (Negative Acknowledgement) 530653501101015 85125551010101U 117165751110101u
22026160010110SYN (Synchronous Idle) 540663601101106 86126561010110V 118166761110110v
23027170010111ETB (End of Transmission Block) 550673701101117 87127571010111W 119167771110111w
24030180011000CAN (Cancel) 560703801110008 88130581011000X 120170781111000x
25031190011001EM (End of Medium) 570713901110019 89131591011001Y 121171791111001y
260321A0011010SUB (Substitute) 580723A0111010: 901325A1011010Z 1221727A1111010z
270331B0011011ESC (Escape) 590733B0111011; 911335B1011011[ 1231737B1111011{
280341C0011100FS (File Separator) 600743C0111100< 921345C1011100\ 1241747C1111100|
290351D0011101GS (Group Separator) 610753D0111101= 931355D1011101] 1251757D1111101}
300361E0011110RS (Record Separator) 620763E0111110> 941365E1011110^ 1261767E1111110~
310371F0011111US (Unit Separator) 630773F0111111? 951375F1011111_ 1271777F1111111DEL

Bijzonderheden

Algemeen

De cijfers bestaan uit hun binaire representatie, voorafgegaan door '011'. De letters staan op alfabetische volgorde, waardoor het eenvoudig is een tekst te alfabetiseren. Dit geldt niet voor de tekens met accenten die later zijn toegevoegd. Bovenkast verschilt slechts één bit (bit 5) met onderkast; dit maakt dat omzetten van kast en kastloos vergelijken een bit-operatie wordt en daardoor erg snel. Dit geldt niet voor Unicode, waar geen vast verschil is en bovendien gebruiken niet alle talen dezelfde omzetting.

Internationaal

In veel talen heeft men niet genoeg aan 26 letters. Daarom werden in sommige talen wijzigingen in de tabel aangebracht. In de Duitse tabel ontbreken de 'overbodige' tekens [\] en {|} - ze zijn vervangen door äöü en ÄÖÜ. In de Britse tabel is het hekje (#) vervangen door een pondteken (£).

Software

Het vervangen van tekens gaf weleens problemen met het programmeren van computers, omdat de 'overbodige' tekens daar wel gebruikt worden. Een ander probleem ontstond als de verkeerde karaktertabel werd gebruikt; zo was het niet goed mogelijk de Duitse teletekstpagina's te bekijken met een televisietoestel dat gemaakt was voor een ander land.

Uitbreiding met 8e bit

Alle mogelijkheden bij het gebruik van 9 bits

ASCII is een 7-bits-code, zodat er 27 = 128 ASCII-codes mogelijk zijn. De meeste computers werken echter met 8-bits-codes (bytes). De 8e bit werd traditioneel gebruikt voor pariteit en andere apparaatspecifieke toepassingen. In eerste instantie bestond de extra verzameling beschikbare tekens uit gangbare accenten op het Latijnse schrift en diverse grafische tekens, zoals blokken, lijnen en rasters, waarmee onder meer goed ogende menu's getoond konden worden. Deze eerste uitgebreide tekenverzameling stond bekend als de ASCII-II tabel.[2]

Omdat in landen buiten de Verenigde Staten behoefte was aan extra tekens, zoals andere letters, letters met accenten, valutasymbolen en figuurtjes, werd het aantal mogelijke tekens vergroot door ook de 8e bit te gebruiken; dit gaf tweemaal zo veel mogelijkheden, namelijk 28 = 256. Zo ontstonden de extended ASCII-tekenverzamelingen. Extended ASCII is trouwens niet één bepaalde standaard, evenmin als primair ASCII (zie de vorige paragraaf), maar een verzamelnaam voor de verschillende tekenrepresentaties die de 95 afdrukbare ASCII-tekens als basis hebben, zoals de ANSI-tekensets.

De bekendste uitbreiding is die van de originele IBM PC, genaamd code page 437. Deze wordt nog steeds ondersteund door de tekengenerator op een videokaart en omvat:

DecOctHexBinairCode
128-154200-23280-9A10000000-10011010diverse letters met diakrieten
155-159233-2379B-9F10011011-10011111valutasymbolen
160-168240-250A0-A810100000-10101000letters met diakrieten (Spaans)
169-170251-252A9-AA10101001-10101010negatiesymbolen
171-172253-254AB-AC10101011-10101100breuken
173255 AD 10101101 omgekeerd uitroepteken ¡
174-175256-257AE-AF10101110-10101111Franse aanhalingstekens
176-178260-262B0-B210110000-10110010rasters
179-218263-332B3-DA10110011-11011010lijntjes
219-223333-337DB-DF11011011-11010000blokjes
224-253340-375E0-FD11100000-11111101wiskundige symbolen
254-255376-377FE-FF11111110-11111111blokjes

ASCII-art

  • Met behulp van de vorm van de tekens kunnen afbeeldingen gemaakt worden, dit heet ASCII-art. In het (ongemodificeerde) spel Dwarf Fortress is de gehele spelwereld uit ASCII tekens opgebouwd.

Zie ook

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.