Hét vraag- en antwoordplatform van Nederland

Hoe komt het dat een teken uit de ASCII-tabel maar 8 bits bevat, terwijl elke letter zoveel meer pixels heeft?

Als elke pixel in een letter zou moeten worden opgeslagen, dan zou een teken toch meer dan 8 bits bevatten. Hoe wordt dit dan omgezet? Is dat hard gecodeerd?

Verwijderde gebruiker
10 jaar geleden
1.5K
SimonV
10 jaar geleden
Er is sprake van twee “coderingen”:
- op machinetaalniveau bestaat een letter uit 8 bits
- op een veel hoger grafisch niveau bestaat een letter uit heel veel puntjes. Omgerekend naar machinetaalniveau uit heel veel (meer) bits. Er is een vertaalslag nodig om de computer te laten begrijpen dat al die puntjes één letter (van 8 bits) betekenen.

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Het beste antwoord

Met acht bits kun je maximaal 256 verschillende combinaties maken.

De letters, in de vorm van de pixels die jij beschrijft, worden op een andere manier gevormd. De ASCII-code van de letter wordt gebruikt om het bijbehorende plaatje op te zoeken in een tabel. Dat is (voor de ASCII-waarden) dus een tabel van 256 plaatjes. De hoofdletter A heeft bijvoorbeeld ASCII-code 65. Als er dus een A op het scherm moet worden gezet, wordt in de betreffende plaatjes-tabel plaatje nummer 65 opgezocht. Dat plaatje wordt op het scherm gezet.

De tabel met plaatjes wordt een font (in het Nederlands: lettertype) genoemd. Als jij kiest voor het lettertype Arial, wordt er een andere lijst met plaatjes gebruikt dan als jij kiest voor het lettertype Times of Verdana.

Je kunt ook hele andere lijsten met plaatjes gebruiken. Kies je bijvoorbeeld voor Wingbats of voor Symbol, dan zal op nummer 65 in de tabel niet een plaatje van een A staan, maar van een heel ander teken. Diezelfde ASCII-code 65 leidt dan tot het tonen van een heel ander teken op het scherm.

Om terug te komen op je vraag: de ASCII-code is alleen maar een soort volgnummertje. Het volgnummertje wordt gebruikt om het bijbehorende plaatje op te zoeken in een tabel. Dat plaatje wordt op het scherm gezet, en ziet er voor ons uit als een A, of een 7, of een +, of elk ander teken, afhankelijk van de ASCII-code en dus van de positie in de tabel met plaatjes.
 

Toegevoegd na 3 minuten:
 
In feite bestaat de definitie van de letter A (en van elk ander teken) in de "tabel met plaatjes" niet uit een serie pixels, maar uit instructies. Denk daarbij aan instructies in de trant van "trek een lijn met dikte D van punt (P,Q) naar punt (R,S); trek daarna een lijn met dikte W van punt (R,S) naar punt (T,U). Teken dan een halve cirkel ... enzovoort". Waarbij P, Q, R, S, T, U enzovoort natuurlijk in getalvorm staan vermeld.

Zo'n lijst instructies maakt het veel eenvoudiger om een bepaald teken groter of kleiner te tekenen dan wanneer een serie pixels zou zijn voorgeschreven.
 

Toegevoegd na 10 minuten:
 
Extra informatie:

Tegenwoordig gaan computers steeds vaker over op Unicode. Dat is de 16-bits versie van de ASCII-code. De lijst met tekens (plaatjes) kan dan ook veel meer plaatjes bevatten: 65536 in plaats van de 256 van de ASCII-tabel.

Het principe blijft echter ongeveer hetzelfde.
 
(Lees meer...)
Cryofiel
10 jaar geleden
Verwijderde gebruiker
10 jaar geleden
Bedankt! Die instructies, dat is toch ook allemaal data, waar wordt die dan opgeslagen?
Cryofiel
10 jaar geleden
In een lettertypedefinitie. Bij mij (Windows 7) staan die in de map C:\Windows\Fonts .
Verwijderde gebruiker
10 jaar geleden
Nog meer extra informatie:
De term Unicorde die je noemt heet officieel UCS2.
Er is ook nog UCS4, met 4.294.967.296 lettercodes.
En om niet elk letterteken met 4 byte te coderen is er een variabele lengte code utf8. Die geeft net zoveel megelijkheden als UCS4, maar waarbij de meest voorkomende tekens een korte bytereeks beslaan en de minder vaak voorkomende (Chinees bijvoorbeeld) een langere bytereeks. Hierbij is bijvoorbeeld voor de ASCII codes voor de eerste 128 tekens toch slechts 1 byte nodig.
Cryofiel
10 jaar geleden
Bedankt voor deze toevoeging, heel helder uitgelegd!

Andere antwoorden (1)

De ASCII-code bepaalt alleen welke letter, welk cijfer of welk leesteken bedoeld wordt. De vorm van de tekens kan in een verzameling bitmaps staan waar de code naar verwijst. Deze verzameling bitmaps is veel groter.
(Lees meer...)
Verwijderde gebruiker
10 jaar geleden

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding