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.21 .
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 255ist 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 FFHexadezimalzahl 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.
deiner Dezimalstelle, dem Bereich von0..9.3*dBits 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,ddass etwas weniger als 10/3 sein sollte.