Computers gebruiken cijfers. Mensen gebruiken letters en symbolen. We hebben een brug nodig. ASCII is die brug. ASCII zet elke letter of elk symbool om in een getal. De computer slaat het getal op. Wanneer we lezen, toont de computer de letter opnieuw. Zo werkt tekst in veel bestanden en apps.
Een computer werkt op elektriciteit. Hij kent twee toestanden: Aan en Uit. We noemen deze toestanden bits . Een bit is een 0 of een 1. Veel bits vormen samen grotere getallen. Acht bits vormen een byte . Met bits kunnen we tellen. Met tellen kunnen we dingen een naam geven. ASCII gebruikt tellen om letters en symbolen een naam te geven.
Eén bit maakt twee keuzes. Twee bits maken vier keuzes. In de wiskunde wordt dit idee weergegeven als \(\;2^n\) . Voor \(n=7\) krijgen we \(2^7 = 128\) keuzes. Voor \(n=8\) krijgen we \(2^8 = 256\) keuzes. ASCII gebruikt 7 bits. Dat levert 128 benoemde items op. Later werden 8-bits sets gemaakt met 256 items. Deze worden uitgebreide ASCII genoemd.
ASCII staat voor American Standard Code for Information Interchange . Het begon in de jaren 60. Het werd ontwikkeld voor de eerste printers, teletypes en computers. Het geeft elke letter, elk cijfer, elke spatie en sommige symbolen een nummer. Het geeft ook speciale nummers aan acties zoals een nieuwe regel . De eerste versie gebruikte 7 bits, dus met getallen van 0 tot en met 127.
Let op iets leuks. Kleine letters zijn 32 meer dan hun hoofdletterpaar. Bijvoorbeeld: \(\;97 - 65 = 32\) . Dus 'a' is 32 meer dan 'A'. 'b' is 32 meer dan 'B', enzovoort. Dit patroon maakt sommige computertaken eenvoudiger.
Wanneer u op Enter drukt, kan uw computer LF, CR of beide verzenden, afhankelijk van het systeem. Veel internettools gebruiken LF. Sommige oude systemen gebruikten CR en LF samen.
We kunnen getallen op verschillende manieren schrijven. Decimaal is de normale manier van tellen, met de cijfers 0 tot en met 9. Binair telt alleen 0 en 1. Hexadecimaal gebruikt 0 tot en met 9 en A tot en met F.
Hoe maakt binair 65 voor 'A'? Kijk naar de bits in 01000001. De meest linkse bit is voor 128. Dan 64, 32, 16, 8, 4, 2, 1. Alleen 64 en 1 staan aan. Dus \(01000001_{(2)} = 0\times128 + 1\times64 + 0\times32 + 0\times16 + 0\times8 + 0\times4 + 0\times2 + 1\times1 = 65\) .
Druk op een toets. Het toetsenbord stuurt een code naar de computer. Het systeem zet deze om in een tekennummer. Voor veel toetsen is dat nummer het ASCII-nummer. De app slaat het nummer op in het geheugen. Wanneer de tekst wordt weergegeven, zoekt de app het nummer op en tekent de letter. Wanneer je de tekst opslaat, worden de nummers in het bestand geplaatst.
Denk aan het bericht Hi!. De letters zijn H, i en !. Hun ASCII-nummers zijn 72, 105 en 33. In binair formaat zijn dat 01001000, 01101001 en 00100001. Het netwerk verstuurt deze bits. De andere kant leest de bits. Hij ziet de getallen. Hij toont H, i en !, opnieuw. Zo bewegen eenvoudige tekstberichten zich.
Mensen wilden meer symbolen. Ze wilden letters zoals é, ñ en ø. Ze wilden geldtekens zoals €. De 7-bitsset bestond uit slechts 128 symbolen. Dus gebruikten mensen 8 bits. Met 8 bits krijgen we \(2^8 = 256\) symbolen. De bovenste helft, van 128 tot 255, werd gebruikt voor extra letters en symbolen. Maar er was een probleem. Verschillende groepen kozen verschillende getallen voor die extra letters. Deze keuzes worden codepagina's genoemd.
Omdat codepagina's verschillen, kan hetzelfde nummer op een andere computer een ander symbool weergeven. Deze verwarring wordt mojibake genoemd. Het lijkt op vreemde tekens. Dit is een van de redenen waarom de wereld overstapte op Unicode.
Unicode is een grote standaard die veel talen, wiskundige symbolen en emoji's kan weergeven. Er is ruimte voor meer dan een miljoen symbolen. Er zijn veel manieren om Unicode op te slaan. Een populaire manier is UTF-8 .
Bij ASCII-tekst gebruikt elk teken één byte. Het woord kat gebruikt dus 3 bytes. De zin hi mom heeft 6 tekens inclusief de spatie, dus die gebruikt 6 bytes. In simpele wiskunde geldt: \(\textrm{ASCII-bytes} = \textrm{aantal tekens}\) .
Computers sorteren strings vaak op hun tekenaantal. De ASCII-volgorde groepeert dingen op een bepaalde manier.
Dit betekent dat Zoo voor Apple komt als we eenvoudige ASCII-waarden vergelijken. De sortering gebeurt op getallen, niet op hoe woorden klinken.
Let op het ampersand : &. Het ASCII-nummer is 38. Het plusteken + is 43. Het minteken - is 45.
Mensen maken afbeeldingen met alleen tekens. Dit heet ASCII-kunst . Hier is een klein gezichtje gemaakt met ASCII-tekens.
:-) Simpele glimlach
(^_^) Vriendelijk gezicht
o_O Verrast
Elk vlak bestaat uit tekens zoals dubbele punten, streepjes en haakjes. Geen kleuren of vormen. Alleen tekst.
ASCII ontstond uit teletypes en de eerste computers. In 1963 werd een eerste versie overeengekomen. Het hielp veel verschillende machines met elkaar te communiceren. Met één gedeelde code betekende een letter als A overal hetzelfde getal. Dit maakte het gemakkelijker om berichten te versturen en tekst af te drukken.
ASCII heeft slechts 128 items. Dat is niet genoeg voor alle talen. Het kan geen Chinees, Hindi, Arabisch of veel andere schriften weergeven. Het kan geen emoji weergeven. Het kan ook niet veel wiskundige en muzieksymbolen weergeven. Hiervoor gebruiken we Unicode. Unicode kan veel schriften en symbolen weergeven. UTF-8 is een manier om ze op te slaan. Het goede nieuws is dat alle ASCII-tekst binnen UTF-8 werkt. Moderne systemen kunnen dus gemakkelijk oude ASCII-tekst lezen.
De meeste apps gebruiken UTF-8. Maar als een bestand alleen ASCII-letters en -symbolen bevat, ziet het er onder UTF-8 hetzelfde uit. Programmeurs zijn hier blij mee, omdat het de zaken simpel houdt. Webpagina's, API's en veel tools gebruiken UTF-8, dat ASCII zonder wijzigingen bevat.
ASCII is een 7-bits set. Dat betekent maximaal \(2^7 = 128\) verschillende tekens. Een uitgebreide set met 8 bits heeft \(2^8 = 256\) items. Als je tekst alleen ASCII-tekens bevat en \(n\) tekens bevat, dan worden er \(n\) bytes gebruikt. In een klein bericht zoals OK is \(n = 2\) . Dus worden er 2 bytes gebruikt wanneer het wordt opgeslagen als ASCII of UTF-8.
Sommige ASCII-items voeren acties uit en worden niet afgedrukt. Spatiebalk drukt blanco af. Maar LF en CR verplaatsen de cursor. TAB verspringt. Wanneer we een bestand openen in een speciale editor, kan LF worden weergegeven als \n. Dat symbool maakt geen deel uit van ASCII zelf. Het is een manier waarop de editor de regelovergang aan u toont.
Stel je een labelmaker voor die namen print. Hij leest de naam als tekens. Hij zet elk teken om in ASCII-getallen. Hij slaat die getallen op in het geheugen. Hij print de letters door op te zoeken hoe elk getal getekend moet worden. Als hij LF (10) tegenkomt, gaat hij naar de volgende regel voordat hij verder print.
Kijk nog eens naar het teken '!'. We kunnen de code op drie manieren schrijven. Decimaal: 33. Binair: 00100001. Hexadecimaal: 21. In wiskundige vorm \(\;33_{(10)} = 00100001_{(2)} = 21_{(16)}\) . Elke vorm heeft dezelfde waarde. Apps kiezen de vorm die ze nodig hebben. Mensen lezen vaak decimaal. Computers houden van binair. Hexadecimaal is een verkorte manier voor mensen om binaire getallen te lezen.
ASCII is klein en duidelijk. Het werd al vroeg ontwikkeld. Veel tools en protocollen werden erop gebouwd. Omdat de eerste 128 Unicode-codes overeenkomen met ASCII, werkt het systeem nog steeds. Daarom kun je zelfs zeer oude tekstbestanden op een nieuwe telefoon of laptop openen en dezelfde letters zien.
Open een bestand met de tekst Hello . De bytes zijn de ASCII-getallen 72 101 108 108 111. In binair formaat zijn dat 01001000 01100101 01101100 01101100 01101111. De app leest elk getal en tekent Hello op het scherm. Als het volgende getal een 10 is, gaat de app naar een nieuwe regel voordat er meer tekst wordt getekend. Zo eenvoudig en stabiel is het proces.
Denk aan het getal 10. Binair is dat 00001010. Decimaal is het tien. In ASCII is 10 LF, de regelterugloop. Dit laat zien hoe hetzelfde getal op verschillende manieren kan worden weergegeven. De betekenis komt voort uit hoe we het getal gebruiken. Als we zeggen dat het een tekencode is, dan betekent 10 LF. Als we zeggen dat het gewoon een telling van appels is, dan zijn het tien appels. De context is belangrijk.
We sturen het woord Zon van het ene apparaat naar het andere. De codes zijn 'S' 83, 'u' 117, 'n' 110. In binair systeem is 83 01010011, 117 01110101, 110 01101110. De bits reizen als aan- en uitsignalen. Het andere apparaat zet de bits weer om in getallen. Vervolgens zet het getallen om in letters. Het toont het woord Zon . Als de volgende code 32 is, is dat een spatie. Als de volgende 33 is, is dat '!'. De regels blijven elke keer hetzelfde. Dat is de kracht van een gedeelde code.