Frage von hdflnxd, 357

Warum beginnt man in der ASCII-Tabelle mit 0 und endet mit 127 anstatt bei 1 zu beginnen und mit 128 zu enden?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Omnivore07, 235

In der Informatik wird grundsätzlich null-basierend gezählt.

Das hat zum Beispiel auch den Ursprung in der Adressierung:

nehmen wir mal an wir haben im Computer irgendwo die Ascii-Tabelle abgelegt. Sagen wir mal spaßeshalber Adresse 0x123. So, um nun das erste Zeichen zu Adressieren schrieb man 0x123+(0x0). Also Adresse 123 Hex plus eine unsichtbare 0, denn wenn ich weiß WO etwas beginngt und ich will das erste Zeichen wissen, dann schreibe ich doch auch nur die Adresse hin! Wenn man beispielsweise das Leerzeichen wollte, dann schrieb man 0x123+0x20. Also man hat zu der Adresse 0123 noch 32 (=0x20) hinzuaddiert.

Deshalb benutzt man grundsätzlich immer 0-basierende Adressen. Und zwar in der ganzen Informatik!

Der Rechner intern berechnet übrigends die physikalischen Adressen genauso aus! :

https://electures.informatik.uni-freiburg.de/portal/download/100/7974/kap8_3_sys...

schau mal auf Seite 35 vorbei.

ich hoffe ich konnte dir helfen.

Antwort
von ceevee, 187

Man hat für das ASCII-Zeichen 7 Bit zur Verfügung (2^7 = 128). Wenn man das letzte Zeichen mit dezimal 128 kodieren würde, dann wäre das binär 1000 0000, man bräuchte also 8 Bit. Das 8. Bit wiederum wird im ASCII-Code aber für andere Sachen benutzt.

Expertenantwort
von hypergerd, Community-Experte für Mathematik, 131

In der Wissenschaft beginnt immer alles bei 0 (nur vor über 500 Jahren begann man bei 1 zu zählen).

Gerade in der Computertechnik beginnt jedes Array bei 0 (nur alte BASIC Interpreter hatten die Voreinstellung "mit 1 beginnen")

Byte hat 8 Bits und die ersten Computer nutzten die vorderen Bytes (0...32) für Befehle an das Ausgabegerät (auch Drucker) wie: Zeilenvorschub, TAB, Cursor nach links usw.)

Das erste Zeichen, was in fast jeder Schriftart richtig interpretiert wird, ist 

"!" = 33 = 0x21 (hex) siehe:

http://birkenhake.org/magister/Data/Images/Dittrich1992S664.jpg

bis  etwa ~ = chr(126) kann man diese Zeichen auch in E-Mails sicher nutzen.

(Taste ALT gedrückt halten und rechts am Ziffernblock 0126 )

Danach interpretiert fast jedes Programm die Zeichen anders!

Um sicher zu gehen, dass LINKS (URL beim Browser) auch auf allen PCs der Welt erkannt werden, sollte man URI-Befehle verwenden:

"über daß" wird nach URI-Befehlen zu

"%C3%BCber%20da%C3%9F"

Achtung: Einige Matrix- oder QR-Code-Scanner leiten den gescannten kompletten Byte-Code ungefiltert weiter an PC oder Handy, d.h. man erlebt gefährliche Situationen, da hiermit auch Befehle wie " Löschen" übertragen werden...

Kommentar von Omnivore07 ,

Das erste Zeichen, was in fast jeder Schriftart richtig interpretiert wird, ist 

"!" = 33 = 0x21 (hex) siehe:

hey, du unterschägst ja das Leerzeichen ^^ (=0x20)

Kommentar von hypergerd ,

Gut aufgepasst. Ja, das unsichtbare Leerzeichen wird oft vergessen, so wie von mir hier. Es wird zwar nicht gedruckt, aber es verschiebt die Position und man kann auch danach suchen.

Keine passende Antwort gefunden?

Fragen Sie die Community