Zum Hauptinhalt springen

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
ZeichenBinÀrHex
␣0010000020
!0010000121
"0010001022
#0010001123
$0010010024
%0010010125
&0010011026
'0010011127
(0010100028
)0010100129
*001010102A
+001010112B
,001011002C
-001011012D
.001011102E
/001011112F
00011000030
10011000131
20011001032
30011001133
40011010034
50011010135
60011011036
70011011137
80011100038
90011100139
:001110103A
;001110113B
<001111003C
=001111013D
>001111103E
?001111113F
ZeichenBinÀrHex
@0100000040
A0100000141
B0100001042
C0100001143
D0100010044
E0100010145
F0100011046
G0100011147
H0100100048
I0100100149
J010010104A
K010010114B
L010011004C
M010011014D
N010011104E
O010011114F
P0101000050
Q0101000151
R0101001052
S0101001153
T0101010054
U0101010155
V0101011056
W0101011157
X0101100058
Y0101100159
Z010110105A
[010110115B
\010111005C
]010111015D
^010111105E
_010111115F
ZeichenBinÀrHex
`0110000060
a0110000161
b0110001062
c0110001163
d0110010064
e0110010165
f0110011066
g0110011167
h0110100068
i0110100169
j011010106A
k011010116B
l011011006C
m011011016D
n011011106E
o011011116F
p0111000070
q0111000171
r0111001072
s0111001173
t0111010074
u0111010175
v0111011076
w0111011177
x0111100078
y0111100179
z011110107A
{011110117B
|011111007C
}011111017D
~011111107E
Steuerzeichen

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: AA) fĂŒr einen Zeilenumbruch und DEL (Hex: 7F7F) 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 00100110200100110_2 entspricht. Diese Zahl beginnt aber mit zwei Nullen. Bei einer Dezimalzahl wĂŒrden Sie normalerweise nicht 0023100023_{10} schreiben, sondern 231023_{10}, richtig?

WĂ€re es dann also nicht einfacher, wenn wir das Zeichen & als 1001102100110_2 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.

Keine LeerschlÀge

Denken Sie daran: Der Computer kennt in einer Bitfolge keine "LeerschlÀge". Er unterscheidet nur zwischen "Strom" (also 11) und "kein Strom" (also 00).

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​

Kurzaufagben

Beantworten Sie die folgenden Fragen und prĂŒfen Sie jeweils Ihre Eingabe.

FrageAntwort
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?
Zahlen und Ziffern

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 11 (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.
Text-BinÀr-Codierer

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:

  1. Erstellen Sie zuerst mithilfe der ASCII-Tabelle (siehe oben) die binÀre Darstellung den Text Das kostet 1 Fr..
  2. Gehen Sie zum Konverter (verlinkte Seite) und stellen Sie sicher, dass dort BINÄR ZU TEXT ausgewĂ€hlt ist.
  3. 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.
  4. 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:

Laden...

Teil B:
Bearbeiten Sie Ihren BinÀrcode wie folgt:

  1. FĂŒgen Sie nach den ersten 8 Bits (also nach der BinĂ€rdarstellung des Buchstabens D) den Code 00001010 ein.
  2. 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.

Laden...