Haftungsausschluss - Ich bin kein Informationstheoretiker, sondern nur ein Code-Affe, der hauptsächlich in C und C ++ (und damit bei Typen mit fester Breite) arbeitet, und meine Antwort wird aus dieser bestimmten Perspektive lauten.
Die Darstellung einer einzelnen Dezimalstelle dauert im Durchschnitt 3,2 Bit - 0 bis 7 können in 3 Bit dargestellt werden, während 8 und 9 4 erfordern. (8*3 + 2*4)/10 == 3.2
1 .
Dies ist weniger nützlich als es sich anhört. Zum einen haben Sie offensichtlich keine Bruchteile. Zum anderen speichern Sie, wenn Sie native Integer-Typen verwenden (dh nicht BCD oder BigInt), keine Werte als Folge von Dezimalstellen (oder deren binären Äquivalenten). Ein 8-Bit-Typ kann einige Werte mit bis zu 3 Dezimalstellen speichern, Sie können jedoch nicht alle 3-Dezimalstellen-Werte in 8 Bit darstellen - der Bereich ist [0..255]
. Sie können die Werte nicht darstellen[256..999]
nur in 8 Bits darstellen.
Wenn es sich um Werte handelt , verwenden wir Dezimalzahlen, wenn die Anwendung dies erwartet (z. B. eine Digital-Banking-Anwendung). Wenn es um Bits geht , verwenden wir normalerweise hexadezimal oder binär (ich verwende fast nie oktal, da ich auf Systemen arbeite, die 8-Bit-Bytes und 32-Bit-Wörter verwenden, die nicht durch 3 teilbar sind).
In Dezimalzahlen ausgedrückte Werte werden Binärsequenzen nicht sauber zugeordnet. Nehmen Sie den Dezimalwert 255
. Die binären Äquivalente jeder Ziffer wäre 010
, 101
, 101
. Die binäre Darstellung des Wertes 255
ist jedoch 11111111
. Es gibt einfach keine Übereinstimmung zwischen jeder der Dezimalstellen in dem Wert der binären Sequenz. Es besteht jedoch eine direkte Korrespondenz mit Hexadezimalziffern - F == 1111
, sodass dieser Wert als FF
Hexadezimalzahl dargestellt werden kann.
Wenn Sie sich in einem System befinden, in dem 9-Bit-Bytes und 36-Bit-Wörter die Norm sind, ist Oktal sinnvoller, da Bits von Natur aus in Dreien gruppiert werden.
- Tatsächlich ist der Durchschnitt pro Ziffer kleiner, da 0 und 1 nur ein einziges Bit erfordern, während 2 und 3 nur 2 Bits erfordern. In der Praxis betrachten wir 0 bis 7, um 3 Bits zu erhalten. Erleichtert das Leben in vielerlei Hinsicht.
d
einer Dezimalstelle, dem Bereich von0..9
.3*d
Bits bedeuten drei Dezimalstellen und ermöglichen die Darstellung von Ganzzahlen aus dem Bereich0..999
. Ganze zehn Bits (denke jetzt binär) ergeben einen Bereich von0..1023
. 999 ist ziemlich nah an 1023, aber etwas weniger. Man kann also erwarten,d
dass etwas weniger als 10/3 sein sollte.