ASCII
Der American Standard Code for Information Interchange oder ASCII ist eine Zeichencodierung, die 1963 definiert wurde. Sie umfasst 95 normale Zeichen und 33 Steuerzeichen.
Steuerzeichen sind spezielle Zeichen, welche beispielsweise einen Zeilen- oder Seitenumbruch darstellen.
ASCII ist ein sehr weit verbreiteter Standard, um Text zu codieren. Er war ursprĂŒnglich fĂŒr eine Codierung mit 7 Bit pro Zeichen ausgelegt. Heute verwenden wir pro ASCII-Zeichen aber meist 8 Bit (also 1 Byte), weil moderne Computer meistens nur mit ganzen Bytes als kleinstmögliche Dateneinheit arbeiten.
Die normalen ASCII-Zeichen sind in der folgenden Tabelle aufgefĂŒhrt:
ASCII-Tabelle
Zeichen | BinÀr | Hex |
---|---|---|
⣠| 00100000 | 20 |
! | 00100001 | 21 |
" | 00100010 | 22 |
# | 00100011 | 23 |
$ | 00100100 | 24 |
% | 00100101 | 25 |
& | 00100110 | 26 |
' | 00100111 | 27 |
( | 00101000 | 28 |
) | 00101001 | 29 |
* | 00101010 | 2A |
+ | 00101011 | 2B |
, | 00101100 | 2C |
- | 00101101 | 2D |
. | 00101110 | 2E |
/ | 00101111 | 2F |
0 | 00110000 | 30 |
1 | 00110001 | 31 |
2 | 00110010 | 32 |
3 | 00110011 | 33 |
4 | 00110100 | 34 |
5 | 00110101 | 35 |
6 | 00110110 | 36 |
7 | 00110111 | 37 |
8 | 00111000 | 38 |
9 | 00111001 | 39 |
: | 00111010 | 3A |
; | 00111011 | 3B |
< | 00111100 | 3C |
= | 00111101 | 3D |
> | 00111110 | 3E |
? | 00111111 | 3F |
Zeichen | BinÀr | Hex |
---|---|---|
@ | 01000000 | 40 |
A | 01000001 | 41 |
B | 01000010 | 42 |
C | 01000011 | 43 |
D | 01000100 | 44 |
E | 01000101 | 45 |
F | 01000110 | 46 |
G | 01000111 | 47 |
H | 01001000 | 48 |
I | 01001001 | 49 |
J | 01001010 | 4A |
K | 01001011 | 4B |
L | 01001100 | 4C |
M | 01001101 | 4D |
N | 01001110 | 4E |
O | 01001111 | 4F |
P | 01010000 | 50 |
Q | 01010001 | 51 |
R | 01010010 | 52 |
S | 01010011 | 53 |
T | 01010100 | 54 |
U | 01010101 | 55 |
V | 01010110 | 56 |
W | 01010111 | 57 |
X | 01011000 | 58 |
Y | 01011001 | 59 |
Z | 01011010 | 5A |
[ | 01011011 | 5B |
\ | 01011100 | 5C |
] | 01011101 | 5D |
^ | 01011110 | 5E |
_ | 01011111 | 5F |
Zeichen | BinÀr | Hex |
---|---|---|
` | 01100000 | 60 |
a | 01100001 | 61 |
b | 01100010 | 62 |
c | 01100011 | 63 |
d | 01100100 | 64 |
e | 01100101 | 65 |
f | 01100110 | 66 |
g | 01100111 | 67 |
h | 01101000 | 68 |
i | 01101001 | 69 |
j | 01101010 | 6A |
k | 01101011 | 6B |
l | 01101100 | 6C |
m | 01101101 | 6D |
n | 01101110 | 6E |
o | 01101111 | 6F |
p | 01110000 | 70 |
q | 01110001 | 71 |
r | 01110010 | 72 |
s | 01110011 | 73 |
t | 01110100 | 74 |
u | 01110101 | 75 |
v | 01110110 | 76 |
w | 01110111 | 77 |
x | 01111000 | 78 |
y | 01111001 | 79 |
z | 01111010 | 7A |
{ | 01111011 | 7B |
| | 01111100 | 7C |
} | 01111101 | 7D |
~ | 01111110 | 7E |
Die ASCII-Codierung kennt noch 33 weitere Zeichen, welche zum Beispiel zur Steuerung von Druckern gebraucht werden. Man nennt sie deshalb Steuerzeichen. Darin enthalten sind Zeichen wie LF
(Hex: ) fĂŒr einen Zeilenumbruch und DEL
(Hex: ) um ein Zeichen zu löschen. Der Ăbersicht halber sind diese Zeichen in der obigen Tabelle nicht aufgefĂŒhrt.
Konstante ZeichenlĂ€ngeâ
Oben haben Sie gelernt, dass z.B. das Zeichen &
dem ASCII-Wert entspricht. Diese Zahl beginnt aber mit zwei Nullen. Bei einer Dezimalzahl wĂŒrden Sie normalerweise nicht schreiben, sondern , richtig?
WĂ€re es dann also nicht einfacher, wenn wir das Zeichen &
als codieren wĂŒrden? Man wĂŒrde damit ja auch Platz sparen, da jede Ziffer 1 Bit Speicher benötigt.
Das stimmt zwar, aber wir hĂ€tten damit auch ein Problem. Wir mĂŒssen eine Bitfolge auch wieder decodieren können, und dazu mĂŒssen wir wissen, wo ein Zeichen endet und wo das nĂ€chste beginnt. Wie wĂŒrden Sie jetzt zum Beispiel bei der Bitfolge 10010101100001100001
herausfinden, welche ASCII-Zeichen hier drin stecken? Eine mögliche Aufteilung wÀre 10010|101|100001|100001
, eine andere Aufteilung wÀre 1001010|1100001|100001
. Welche ist nun gemeint? Wir können diese Bitfolge nicht eindeutig decodieren.
Denken Sie daran: Der Computer kennt in einer Bitfolge keine "LeerschlÀge". Er unterscheidet nur zwischen "Strom" (also ) und "kein Strom" (also ).
Deshalb verlassen wir uns bei der ASCII-Codierung darauf, dass wir fĂŒr jedes Zeichen immer genau 8 Bits verwenden. So können Sie beispielsweise die Bitfolge 010010100110000100100001
in einfach Achter-Pakete aufteilen und erhalten 01001010|01100001|00100001
. Wenn Sie dann die drei Werte 01001010
, 01100001
und 00100001
in der ASCII-Tabelle nachschlagen, sehen Sie, dass hier der String Ja!
codiert wurde. Mit dieser Regel lÀsst sich jede ASCII-codierte Bitfolge also eindeutig decodieren.
Aufgabenâ
Beantworten Sie die folgenden Fragen und prĂŒfen Sie jeweils Ihre Eingabe.
Frage | Antwort |
---|---|
Wieviele Zeichen lassen sich mit 7 Bit maximal codieren? | |
Welches ist der Code fĂŒr das Zeichen A ? Geben sie den Code als binĂ€re und als dezimale Zahl an. | |
FĂŒr welches Zeichen steht der Code 01100001 ? | |
FĂŒr welches Zeichen steht der Code 00110000 ? |
Ziffern (0
, 1
, etc.) können auch als Zeichen dargestellt werden. Der Code 00110001
steht in ASCII-Code fĂŒr das Zeichen 1
.
Wir mĂŒssen uns also immer bewusst sein, ob wir jetzt ĂŒber die Zahl (als binĂ€re Zahl mit acht Stellen 00000001
) oder das Zeichen 1
sprechen.
Damit es kein Durcheinander gibt, werden in den meisten Programmiersprachen die AnfĂŒhrungszeichen verwendet, wenn die Ziffern als Zeichen â sprich, als normaler Text â interpretiert werden sollen:
x = 1
y = "1"
Im obigen Python-Beispiel sieht das also folgendermassen aus:
x
- ist ein Integer und entspricht somit der Zahl
00000001
. y
- ist ein String und entspricht dem ASCII-Zeichen mit dem Code
00110001
.
Auf đ dieser Seite können Sie einerseits normalen Text in die binĂ€re Darstellung umwandeln (codieren) und andererseits binĂ€re Codes zu normalem Text decodieren.
Teil A:
- Erstellen Sie zuerst mithilfe der ASCII-Tabelle (siehe oben) die binÀre Darstellung den Text
Das kostet 1 Fr.
. - Gehen Sie zum Konverter (verlinkte Seite) und stellen Sie sicher, dass dort BINĂR ZU TEXT ausgewĂ€hlt ist.
- Geben Sie die entstandene Bitfolge dort in das Feld BinĂ€rcode ein. Sie dĂŒrfen dabei nur die Ziffern 0 und 1 verwenden, also keine LeerschlĂ€ge und Hochkommas.
- DrĂŒcken Sie Konvertieren.
Wenn Ihr Code stimmt, dann sehen Sie jetzt im untersten Feld den ursprĂŒnglichen Text. Hat's geklappt? Korrigieren Sie Ihren BinĂ€rcode, falls nötig.
Halten Sie den fertigen BinÀrcode hier fest:
Teil B:
Bearbeiten Sie Ihren BinÀrcode wie folgt:
- FĂŒgen Sie nach den ersten 8 Bits (also nach der BinĂ€rdarstellung des Buchstabens
D
) den Code00001010
ein. - DrĂŒcken Sie anschliessend nochmal auf Konvertieren.
Was bewirkt dieser Code? Geben Sie Ihre Antwort als Text ein und ĂŒberprĂŒfen Sie ihre Lösung.