Informatik Frage: Codierung

Gary12345

Ensign
Registriert
Sep. 2012
Beiträge
246
Hallo,

ich beschäftige mich selbstständig als 16 Jähriger mit dem Thema Informatik - habe dazu ein richtig fettes Buch gekauft. ("Einführung in die Informatik" von Heinz Peter Gumm und Manfred Sommer - 10 Auflage). Ich musste beim Thema Codierungen kurz stoppen und würde hier gerne meine Frage formulieren:

ASCII - Codierung: Das erste Bit beginnt mit einer 0 - daher gibt es 2^7 verschiedene Möglichkeiten die Bitfolgen zu gestalten. D.h. das jede verschiedene Bitfolge ein Zeichen speichert?

Hex: 31 => ASCII: 1
Dezimal => 49
Bitfolge: 0011 0001

Und diese Bitfolge speichert dieses eine Zeichen? D.h. jede andere Bitfolge speichert ein anderes Zeichen?

Danke!
 
Die Bitfolge ist ja nur die binäre Repräsentation der dezimalen oder hexadezimalen Zuordnung der ASCII-Tabelle (oder was auch immer man als Keys für den Table nutzt).

Also ja, jede Bitfolge steht stellvertretend für eine Zahl, also einen Index, dem ein Zeichen zugeordnet ist.

Btw: "selbstständig" ist in diesem Zusammenhang leicht verwirrend, du arbeitest ja sicherlich nicht selbstständig im IT-Bereich, sondern meinst viel mehr, dass du dich in deiner Freizeit, also nebenbei, eigenständig, mit dem Thema Informatik beschäftigst?!
 
Ja, jede "Bitfolge" (bei ASCII jeweils ein Byte) speichert ein Zeichen. UTF-8 bspw. arbeitet Multibyte, d.h. du hast mehrere Byte, die ein Zeichen repräsentieren.
 
Btw: "selbstständig" ist in diesem Zusammenhang leicht verwirrend, du arbeitest ja sicherlich nicht selbstständig im IT-Bereich, sondern meinst viel mehr, dass du dich in deiner Freizeit, also nebenbei, eigenständig, mit dem Thema Informatik beschäftigst?!
Das meine ich. War etwas verwirrend und blöd ausgedrückt meinerseits.

Die Bitfolge ist ja nur die binäre Repräsentation der dezimalen oder hexadezimalen Zuordnung der ASCII-Tabelle (oder was auch immer man als Keys für den Table nutzt).
OK, das erklärt dann die Frage.

Das würde auch bedeuten, dass wenn ein einfaches Textdokument mit ASCII-128 codiert ist, und man theoretisch zufällig nur die Binärzahlen sieht, man praktisch es entziffern könnte.

Nochmals eine Frage zum Verständnis:
Ein Bit speichert eine Antwort auf eine Frage (2 Antwortmöglichkeiten). Jetzt könnte man praktisch in einem Bit zwei Zeichen speichern?
Sagen wir mal 0 = a 1 = b (0 speichert a und die 1 speichert b)

0101010101 => ababababab
 
Ein Bit speichert eine Antwort auf eine Frage (2 Antwortmöglichkeiten). Jetzt könnte man praktisch in einem Bit zwei Zeichen speichern?
Sagen wir mal 0 = a 1 = b (0 speichert a und die 1 speichert b)

0101010101 => ababababab
=>
Also ja, jede Bitfolge steht stellvertretend für eine Zahl, also einen Index, dem ein Zeichen zugeordnet ist.

Genau hier hast du ja deinen "Index" definiert. Du sagst einfach 0=a, 1=b.
Das kann man jetzt beim Programmieren natürlich nutzen. Andererseits wäre es effizient (speichereffizienter geht es nicht), aber wohl enorm aufwändig (also in größerem Maßstab).
 
Gary12345 schrieb:
Hallo,

ASCII - Codierung: Das erste Bit beginnt mit einer 0 - daher gibt es 2^7 verschiedene Möglichkeiten die Bitfolgen zu gestalten. D.h. das jede verschiedene Bitfolge ein Zeichen speichert?

Nur so als Tipp bezüglich der üblichen Nomenklatur. Wenn du vom ersten Bit sprichst dann wird in üblicherweise damit Bit 0 verstande. Dies ist aber entgegen der hierzulande verwendeten Leserichtung ganz rechts.

Gary12345 schrieb:
Das würde auch bedeuten, dass wenn ein einfaches Textdokument mit ASCII-128 codiert ist, und man theoretisch zufällig nur die Binärzahlen sieht, man praktisch es entziffern könnte.

Nochmals eine Frage zum Verständnis:
Ein Bit speichert eine Antwort auf eine Frage (2 Antwortmöglichkeiten). Jetzt könnte man praktisch in einem Bit zwei Zeichen speichern?
Sagen wir mal 0 = a 1 = b (0 speichert a und die 1 speichert b)

0101010101 => ababababab

Hierzu wieder noch eine kleine Erklärung, falls du es nicht schon bereits weiss: Die hier gemeinte Codierung ist nicht zu verwechseln mit der kryptographischen Codierung. Hier beschreibt die Codierung eine Zuordnung von einem Zahlenwert (egal ob Dezimal oder Binärdarstellung) zu einem kontextbezogenem Symbol (hier der ASCII Zeichensatz mit u.a. dem Alphabet).

Zum zweiten Teil: Richtig. Wobei hier "speichern" nicht der richtige Begriff ist. der Zahlenwert 0 repräsentiert ein "a" und der Zahlenwert 1 ein "b". Diese Zahlen können entweder in der Binärdarstellung erfolgen oder in der irgendeiner anderen. Wobei hier Binär- und Dezimaldarstellungen gleich "aussehen".

Gruß slash
 
slashmaxx schrieb:
Nur so als Tipp bezüglich der üblichen Nomenklatur. Wenn du vom ersten Bit sprichst dann wird in üblicherweise damit Bit 0 verstande. Dies ist aber entgegen der hierzulande verwendeten Leserichtung ganz rechts.


Es gibt sowohl Little als auch Big Endian. Du hast aber Recht, dass man meistens Little Endian verwendet und somit das least significant bit (LSB) ganz rechts steht.

Ich glaube das war Quatsch, da man mit der Endianess üblicherweise nur die Bytereihenfolge angibt :)

Die Leserichtung entspricht jedoch der bei uns üblichen, da die niedrigwertigste Stelle bei normalen Zahlen ganz rechts steht.
 
Zuletzt bearbeitet: (Fehler angeprangert.)
Freezedevil schrieb:

Es gibt sowohl Little als auch Big Endian. Du hast aber Recht, dass man meistens Little Endian verwendet und somit das least significant bit (LSB) ganz rechts steht.

Wobei hier bei Little und Big Endian eher das auf die Speicherausrichtung bezogen ist und nicht auf die Lesart selbst, das sollte man unterscheiden, sonst wird man nur kirre bei :-D

Freezedevil schrieb:
Die Leserichtung entspricht jedoch der bei uns üblichen, da die niedrigwertigste Stelle bei normalen Zahlen ganz rechts steht.

Natürlich richtig :-) Bei Dezimalzahlen steht das niederwertigste Digit auch ganz rechts. Aber ich glaube wir wissen beide, was ich meinte und was in der Informatik üblich ist :-)

Gruß slash
 
Na ja, ob du das "erste" Bit eines Bytes links oder rechts siehst, ist wohl eher eine Frage der persönlichen Vorliebe. ;) Für den Rechner gibt es eh kein links oder rechts ... es geht ja hier lediglich um das Bit mit der niedrigsten Wertigkeit vs das Bit mit der höchsten Wertigkeit.

Und wie schon angemerkt wurde, Endianness bezieht sich auf die Wertigkeit von Bytes innerhalb eines Datums, das aus mehreren Bytes besteht. Endianness hat nichts mit der Wertigkeit von Bits innerhalb eines Bytes zu tun.
 
rum wie num, die übliche Darstellung ist MSB ... ... ... LSB
Siehe z.B. Linux Dateiberechtigungen: rx- = 6, rxw = 7
 
antred schrieb:
Na ja, ob du das "erste" Bit eines Bytes links oder rechts siehst, ist wohl eher eine Frage der persönlichen Vorliebe. ;) Für den Rechner gibt es eh kein links oder rechts ... es geht ja hier lediglich um das Bit mit der niedrigsten Wertigkeit vs das Bit mit der höchsten Wertigkeit.

Und wie schon angemerkt wurde, Endianness bezieht sich auf die Wertigkeit von Bytes innerhalb eines Datums, das aus mehreren Bytes besteht. Endianness hat nichts mit der Wertigkeit von Bits innerhalb eines Bytes zu tun.

persönliche Vorliebe hin oder her :-) wäre ja schade drum, wenn man international übliche gepflogenheiten nicht beachtet und so mißverständnisse entstehen. Und es ging ja hier nur um die schriftbildliche darstellungen solcher werte.

gruß slash
 
Gary12345 schrieb:
Wenn man eine normale Textdatei (.txt) speichert, speichert es die standardweise immer unter ANSII Codierung.
wie kommst du auf ANSII? Ansii hat praktisch gar keine Bedeutung. Notepad wird wahrscheinlich das Windows Charset windows-1252 nutzen.

Wenn du bei einem Byte pro Zeichen bleibst wird im westeuropäischen Raum der iso-8859-1 bzw. iso-8859-15 von Relevanz sein. Da wird das oberste Bit (MSB, Bit 7) genutzt. Ist es 0 ist das ganze automatisch auch ein ASCII-Zeichen, ist es eine 1 eben nur ein iso-8859-1/15 Zeichen. Es können somit also 128 weitere Zeichen dargestellt werden, wie die deutschen Umlaute ;)
 
Ich hatte einen groben Denkfehler: Ich habe ANSI mit ASCII verwechselt. Wohl noch gestresst vom heutigen Wandertag. Dennoch Danke! :)

wie kommst du auf ANSII? Ansii hat praktisch gar keine Bedeutung. Notepad wird wahrscheinlich das Windows Charset windows-1252 nutzen.

Als Codierungsstandard wird ANSI verwendet. Kannst Du ja selbst testen.
 
...als ob es noch einen wirklich guten Grund gäbe, ISO-8859-1/15 zu nutzen...
Den Kram sollte man in Geschichte unterrichten und sich nicht irgendwie als aktuell verwertbare Information aneignen.
 
Wenn jemand sich aber mit der Codierung beschäftigt ist für ihn erstmal einfacher zu verstehen wie ASCII und iso-8859-1/15 zusammenhängen und wie dort die Umlaute eingebaut werden.
Danach kann man sich gerne mit UTF-8 beschäftigen, ist mit den 11 und 10 Bit-Prefixen auch nicht wirklich viel komplexer, aber immerhin nicht ganz so intuitiv wie iso-8859-1/15.

Es sprach ja hier niemand davon, dass er es verwenden soll. Und trotzdem gibt es noch gute Gründe es zu verwenden: Man spart sich ein Byte bei deutschen Umlauten, im Desktop und Web egal. Wenn ich aber auf wirklichen Embedded Geräten Arbeite kann nachher jedes Byte zählen, wer mal ein paar Kilobyte wegoptimieren musste, damit alles in den ROM passt, der wird jede kleine Optimierung nutzen.
 
Das Problem an den 8859-artigen Codierungen ist ihre Ähnlichkeit, ohne dabei Gleichheit zu erreichen. Ich sag nur Euro-Zeichen...
Wenn man nicht am Speicherplatzlimit herum oxidiert sollte man von dem Zeug echt Abstand nehmen.
 

Ähnliche Themen

  • Gesperrt
Antworten
3
Aufrufe
1.575
Zurück
Oben