ASCII-Code

Der ASCII-Code

ASCII ist die Abkürzung für "American Standard Code for Information Interchange".
Dies ist ein international genormter Zeichencode mit dem alle Zeichen in C-Programmen dargestellt werden.

Der ASCII-Code umfasst alle Groß- und Kleinbuchstaben, Ziffern und alle wichtigen Sonderzeichen.

ACHTUNG!!! Das ß, ä ü ö und § sind keine international gebräuchlichen Zeichen und kommen daher im ASCII-Code auch nicht vor.

Nähere Informationen bekommt Ihr bei Wikipedia.

Was bedeutet das für den C-Programmierer?
Schaut man sich die ASCII-Tabelle an stellt man fest das z.B. der Buchstabe A den Wert 65 und B den Wert 66 u.s.w.

Gebe ich in ein C-Programm folgende Befehlssequenz ein:

char Buchstabe;
Buchstabe = 65;

printf("Buchstabe %d %c\n", Buchstabe,Buchstabe);

Bekomme ich als erstes den SCII-Code und dann das Zeichen ausgegeben.
Nun könnte man aus reiner Neugier auch mal eingeben:

Buchstabe++;
oder
Buchstabe--;

Wer damit nichts mehr anfangen kann, sollte sich meinen Eintrag über die Operatoren noch einmal zu Gemüte führen.

Das ist quasi eine riesen Sache. Wir haben so raus gefunden, das wir sehr wohl mit Buchstaben rechnen können. Wir müssen dafür nur den ASCII-Code zur Hilfe nehmen.

Möchte man nun mit ASCII-Code Rechnen, sucht man sich am besten eine Referenz. Z.B. die 0. Sie hat den ASCII-Code 48. Alle Sonderzeichen kommen vor der 0 und alle Zahlen und Buchstaben kommen danach.

Nehmen wir nun an wir haben eine Rechnung in einem Programm die mit den Datentypen char deklariert wurde. Das Ergebnis soll dann aber in einer short Variable gespeichert sein.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include <stdio.h>

void main()
{

char text[] = "9+5";

/* Nun müssen wir als erstes auf die Einzelnen Werte in diesem Array zugreifen.*/

x = (short)text[0];
y = (short)text[2];

/* Nun entspricht jede Variable dem ASCII-Zeichen der jeweiligen Zahl */
/* x = 57 und y = 53 Würde man diese beiden Werte nun Addieren kämmen wir nicht auf 14 */

/* Nun wissen wir das die 0 im ASCII-Code an 48 Stelle steht. Das nutzen wir um die richtigen Werte zu bekommen.*/

x = x – 48;
y = y – 48;

z = x + y;
printf(„z = %d\n“, z);

/* Nun ist z = 14.*/
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Da wir ja wissen, dass man Stringvariablen erst umwandeln muss, können wir solche Berechnungen auch vereinfachen. Wir können direkt bei der Zuweisung der Variablen die Berechnungen der ASCII-Zeichen durchführen.
x = (short)text[0] - '0';
y = (short)text[2] - '0';

Beachtet bitte die Hochkommata!

Durch diese Schreibweise sparen wir uns die beiden Zeilen:
x = x – 48;
y = y – 48;

Und ihr wisst ja: „Um so weniger Code um so weniger Fehler.“