ASCII und Festkomma-Arithmetik

Gast #3851497
Lesenswert?
• ▲
▼
Sagt mal, weil der Artikel zur Festkommaarithmetik gerade auf der 
Webseite erschienen ist:

Wäre es nicht bei der Definition des ASCII-Codes sinnvoller gewesen, die 
Ziffern 0 bis 9 auf die ersten zehn Positionen des ASCII-Codes zu legen?

Dann hätte man bei jeder Zahl einfach nur die Modulo-10-Operation 
gehabt, und hätte sofort die jeweils letzte Ziffer als solche senden 
können.


Gibt es etwas, was dagegen spricht, bzw. Nachteile, die ich mir damit 
einfange?
Gast #3851595
Lesenswert?
• ▲
▼
>Wäre es nicht bei der Definition des ASCII-Codes sinnvoller gewesen, die
>Ziffern 0 bis 9 auf die ersten zehn Positionen des ASCII-Codes zu legen?

Ich gehe mal davon aus, dass Du zum Zeitpunkt der Festlegung noch kein 
Stimmrecht hattest.

Deine Frage geht am Kern der Sache (Grund und Aufbau des Codes) vorbei 
und fällt mit Sicherheit in die Rubrik: Hinterher sind alle schlauer.
#3851601
Lesenswert?
• ▲
▼
@ Autor: ASCII (Gast)

>Wäre es nicht bei der Definition des ASCII-Codes sinnvoller gewesen, die
>Ziffern 0 bis 9 auf die ersten zehn Positionen des ASCII-Codes zu legen?

Nö.

>Dann hätte man bei jeder Zahl einfach nur die Modulo-10-Operation
>gehabt, und hätte sofort die jeweils letzte Ziffer als solche senden
>können.

Wo ist das Problem, einfach 0x30 zu addieren?

>Gibt es etwas, was dagegen spricht, bzw. Nachteile, die ich mir damit
>einfange?

In C ist 0x00 der Stringterminator und damit als Zeichen in einem String 
nicht nutzbar. OK, ASCII ist deutlich älter als C, aber auch damals hat 
man sich um das Thema Steuerzeichen und normale Zeichen ne Menge 
Gedanken gemacht.
#3851624
Lesenswert?
• ▲
▼
ASCII schrieb:
> Gibt es etwas, was dagegen spricht, bzw. Nachteile, die ich mir damit
> einfange?

Das Zeichen NUL, was allgemein Nichtstun bedeutet, würde Strom 
verbrauchen. Denn dieser Zustand hätte dann logischerweise nicht mehr 
den Code 0x00 sondern irgendeinen anderen.

Das ist heutzutage natürlich vollkommen egal. Einem µP oder µC ist es 
allerdings auch egal, ob er das Zeichen mit 0x30 verknüpft.

Aber 1963 und weit darüber hinaus gab es auch Maschinen, die Codes 
mechanisch, z.B. mit Elektromagneten, abgetastet haben. Der Zustand NUL 
mit  dem angenommenen Code 0x10, hätte dann bedeutet, dass der Magnet #4 
im Leerlauf ständig angezogen sein müsste. Das hätte unnötig Strom 
verbraucht und wäre der Lebensdauer der Magnetspule abträglich gewesen.

Natürlich hätte man die Abtastung auch invertieren können, damit die 
Relais bei einer 0 anziehen. Dann hätte man die NUL auf 0x7F legen 
können. Damit wäre der Code aber nach oben nicht mehr erweiterbar 
gewesen. Oder man hätte das gleiche Problem mit 8 Bit mittendrin im 
Zeichensatz wieder gehabt.

Ausserdem ist ein ungestanzter Lochstreifen leer, also NUL. Wäre NUL 
aber 0x10, müsste man bei jedem Zeichen, bei dessen Code Bit4 0 ist, das 
Loch zustopfen. Denn dieses Bit, müsste auf dem "leeren" Lochstreifen 
gestanzt sein, damit die Maschine diesen auch als "leer" erkennen kann.

mfg.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.