PROG0101 - ASCII standard

no tags 

How does a computer, which can only work with binary numbers, handle letters (characters)? It will probably not surprise you that this is done by representing each of these characters as a binary number. The first developers of computer systems came up with several ways to represent characters as binary numbers.

But first of all, what is a character? Characters are entities that you print on a sheet, which usually consist of letters (a, b, c, ...), numbers (0, 1, 2, ...), and punctuation marks (period, comma, semicolon, ...). However, there are characters that cannot be printed, such as a carriage return or tab, along with other characters that go back to the time of the very first computer systems such as form feed.

The first standardized way to present characters in a computer as binary numbers was the American Standard Code for Information Interchange, or ASCII for short, developed in 1963. The ASCII table shows how each of the natural numbers from 0 to 255 can be converted to its corresponding character, and vice versa. For example, the character "A" is represented by the number 65, while the number 97 is the character "a".

Luckily, you do not have to know this table by heart in order to work with the ASCII representation of characters. In Python, you can use the following two built-in functions:

  • chr(n) prints the character that corresponds with the number n in the ASCII table. In that way chr(97) returns the string "a".
  • ord(c) prints the ASCII value of the character c . For example: ord("A") returns the value 65 .

Input

No input.

Output

Write out a portion of the ASCII table by writing a line for each number from 33 to 126, showing the number, followed by a tab and the character that corresponds to this number in the ASCII table. This part of the ASCII table only contains printable characters.

Example

Output:

33      !
34 "
35 #
...
124 |
125 }
126 ~

Hoe gaat een computer die enkel kan werken met binaire getallen om met letters (karakters)? Het zal je wellicht niet verwonderen dat dit gebeurt door elk van deze karakters voor te stellen als een binair getal. De eerste ontwikkelaars van computersystemen bedachten daarvoor verschillende manieren om karakters voor te stellen door binaire getallen.

Maar eerst en vooral, wat is een karakter? Karakters zijn die entiteiten die je afgedrukt ziet op een blad en die meestal bestaan uit letters (a, b, c, …), cijfers (0, 1, 2, …), en leestekens (punt, komma, puntkomma, …). Er bestaan echter ook karakters die niet kunnen afgedrukt worden, zoals een carriage return of een tab, naast andere karakters die teruggaan op de tijd van de allereerste computersystemen zoals form feed.

De eerste gestandaardiseerde manier om karakters als binaire getallen voor te stellen in een computersysteem was de American Standard Code for Information Interchange of kortweg ASCII, ontwikkeld in 1963. De ASCII tabel geeft aan hoe elk van de natuurlijke getallen 0 tot en met 255 kan omgezet worden naar zijn corresponderend karakter, en omgekeerd. Zo wordt bijvoorbeeld het karakter "A" voorgesteld door het getal 65, terwijl het getal 97 het karakter "a" voorstelt. 

Gelukkig moet je deze tabel niet van buiten kennen om te kunnen werken met de ASCII-voorstelling van karakters. In Python kan je hiervoor gebruik maken van de volgende twee ingebouwde functies:

  • chr(n) geeft het karakter terug dat correspondeert met het getal n in de ASCII tabel. Zo geeft chr(97) bijvoorbeeld de string "a" terug.
  • ord(c) geeft de ASCII-waarde van het karakter c terug. Zo geeft ord("A") de waarde 65 terug.

Invoer

Geen invoer.

Uitvoer

Schrijf een deel van de ASCII-tabel uit, door voor elk getal vanaf 33 tot en met 126 een regel uit te schrijven met daarop het getal, gevolgd door en tab en het karakter dat correspondeert met dit getal in de ASCII-tabel. In dit deel van de ASCII-tabel staan enkel afdrukbare karakters.

Voorbeeld

Uitvoer:

33      !
34 "
35 #
...
124 |
125 }
126 ~


Added by:Peter Dawyndt
Date:2011-08-04
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None