Das Schneider CPC Systembuch

Grundlagen

Andere Zahlensysteme

Umrechnung binär -> dezimal

Rechnen Sie doch einmal die Zahl '10011010' auf die oben gezeigte Weise um. Aber Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: HaltHalt: '10011010' ist jetzt eine im Binärsystem angegebene Zahl! Schwierig? Aber nein, keineswegs. Gehen Sie einfach genauso vor, wie gerade anhand der Dezimalzahl '729' gezeigt:

(10011010)2 = 1*2^7 + 0*2^6 + 0*2^5 + 1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0

            = 128   + 0     + 0     + 1*16  + 1*8   + 0     + 1*2   + 0

            =  128
              + 16
              +  8
              +  2
              ----
            = (154)10     Fertig!

Noch ein paar kleine Hinweise: Diese 'Klammerschreibweise' ist üblich, um die Zahlenbasis einer Zahl klarzustellen, wenn diese aus dem Zusammenhang heraus nicht eindeutig ist. 'Normalerweise' wird man darauf verzichten, da hierzulande ja fast ausschließlich im Dezimalsystem gerechnet wird. Die Zahlenbasis wird immer im Dezimalsystem angegeben.

Statt der Zahlenbasis '10' musste jetzt '2' verwendet werden. Die Zahl ist ja im Binärsystem dargestellt. An der Durchnummerierung der Ziffern hat sich nichts geändert und auch nicht an der Art und Weise, wie die einzelnen Ziffern benutzt wurden, um die 'gewerteten Ziffern' zusammenzusetzen.

Tatsächlich ist der einzige Unterschied der, dass eine andere Zahlenbasis verwendet wurde. Außerdem fällt auf, dass das Binärsystem sehr bequem ist: Die Ziffern können ja nur den Wert '0' oder '1' annehmen. Ist die Ziffer auf einer Stelle Real: NullNull, so wird der gesamte Summand Real: NullNull und fällt bei der Rechnen im Binärsystem: AdditionAddition nachher total 'raus. Ist die Ziffer Eins, so ist die Rechnen im Binärsystem: MultiplikationMultiplikation der Ziffer mit dem Andere Zahlensysteme: StellenwerteStellenwert äußerst einfach. Andere Fälle gibt es nicht mehr.

Mit Hilfe dieser Methode lässt sich also eine Zahl aus einem in ein anderes Zahlensystem umrechnen. Das Ziel-System sollte dabei das Dezimalsystem sein, weil Sie in diesem System addieren und multiplizieren müssen. Mit dieser Methode kann aber grundsätzlich auch eine Dezimalzahl in eine Binärzahl gewandelt werden.

Nicht ohne Hintergedanken wurde im obigen Beispiel eine 8-stellige Binärziffer gewählt. Der Schneider CPC hat intern einen Erklärung zu den Anschlüssen: D0 bis D7Datenbus mit 8 Leitungen. Jede Leitung kann auf 0 Volt oder +5 Volt liegen. Diese Spannungspegel werden der Ziffer Real: NullNull '0' und Eins '1' zugeordnet. Man kann die acht Datenleitungen also als Stellen in einer achtstelligen Binärzahl ansehen. Auf diese Weise wird die logische Konstruktion einer Binärzahl im Computer physikalisch umgesetzt.

Eine Binärziffer wird sehr oft auch als 'Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
BIT
' bezeichnet: 'BInary DigiT'. Ein Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
ist die kleinste, denkbare Informationseinheit überhaupt. Mit einem Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
lassen sich nur zwei verschiedene Zustände unterscheiden. Noch weniger Information geht nicht. Eine "Ziffer", die nur einen Zustand kennt, enthält keine Information mehr. Eine Information besteht ja letztlich immer in der Abgrenzung gegen andere Möglichkeiten. Kann eine Ziffer aber nur einen Zustand einnehmen, werden dadurch keine anderen Zustände mehr ausgeschlossen. Es entsteht kein Informationsgewinn.

Mit Hilfe mehrerer 'Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
BITs
' ist es möglich, auch komplexere Informationen als 'JA-NEIN' oder '0Volt - +5Volt' zu übertragen. Mit vier Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bits
(also mit einer vierstelligen Binärzahl) können Zahlen von 0 bis 15 dargestellt werden. Mit acht Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bits
, also soviel, wie auf dem Erklärung zu den Anschlüssen: D0 bis D7Datenbus gleichzeitig übertragen werden, sind bereits Zahlenwerte von 0 bis 255 (dezimal) zu unterscheiden.

Die folgenden Bezeichnungen für n-stellige Binärzahlen sind dabei üblich:

 1 Stelle  - Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
BIT
(BInary DigiT) (Die Z80: Wirkung der Z80-Befehle auf die FlagsFlags) 4 Stellen - Datenbreite: NibblesNIBBLE (Dezimalziffern) 8 Stellen - Datentypen: Bytes
Datenbreite: Bytes
BYTE
(Datenbusbreite bei der Z80-CPU) (Darstellung von Zeichen) 16 Stellen - Datenbreite: WordsWord (Adressbusbreite bei der Z80-CPU) (Integer-Zahlen)

Die Umrechnung von Zahlen in binärer in dezimale Darstellung und umgekehrt wird im Computer-Alltag (zumindest bei Assembler-Programmierern) sehr häufig benötigt. Aber auch bei der Programmierung des Einleitung: Sound
MAIN FIRMWARE JUMPBLOCK: SOUND MANAGER
Die Firmware des Schneider CPC: SOUND MANAGER
SOUND
MANAGERs via SOUND-Befehlen wird sie benötigt (Der erste Basic und Maschinencode: ParameterParameter, das Status-Byte ist ja Bit-signifikant). Um sich bei den Umrechnungen das ständige Arbeiten mit Zweierexponenten zu ersparen, kann man diese 'Reihe' einfach recht frühzeitig lernen. Zumindest für die ersten acht Ziffern sollte man sie im Schlaf vorwärts und rückwärts können:

    1000100010001000   Stelle      Wertigkeit
    ||||||||||||||||   ----------------------
    |||||||||||||||+--  0     2 ^ 0 =       1  \
    ||||||||||||||+---  1     2 ^ 1 =       2   |
    |||||||||||||+----  2     2 ^ 2 =       4   |
    ||||||||||||+-----  3     2 ^ 3 =       8    \ Die Andere Zahlensysteme: StellenwerteStellenwerte
    |||||||||||+------  4     2 ^ 4 =      16    / in einem Datentypen: Bytes
Datenbreite: Bytes
Byte
||||||||||+------- 5 2 ^ 5 = 32 | |||||||||+-------- 6 2 ^ 6 = 64 | ||||||||+--------- 7 2 ^ 7 = 128 / |||||||| |||||||+---------- 8 2 ^ 8 = 256 ||||||+----------- 9 2 ^ 9 = 512 |||||+------------ 10 2 ^10 = 1024 1024 = 1 Kilobyte ||||+------------- 11 2 ^11 = 2048 |||+-------------- 12 2 ^12 = 4096 ||+--------------- 13 2 ^13 = 8192 |+---------------- 14 2 ^14 = 16384 +----------------- 15 2 ^15 = 32768 2 ^16 = 65536 2 ^17 = 131072 2 ^18 = 262144 2 ^19 = 524288 2 ^20 = 1048576 1048576 = 1 Megabyte 2 ^21 = 2097152 2 ^22 = 4194304 2 ^23 = 8388608

Die höchste Zahl, die mit einem Datentypen: Bytes
Datenbreite: Bytes
Byte
dargestellt werden kann, ist 255:

(11111111)2 = (128+64+32+16+8+4+2+1)10 = (255)10

Man kann das aber auch leichter so ausrechnen:

(11111111)2 = (100000000 - 1)2 = (2^8 - 1)10 = (256-1)10 = (255)10

Mit n Stellen lassen sich in einem Zahlensystem mit der Basis LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
^n verschiedene Zahlen darstellen. Die höchste Zahl ist LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
^n - 1.

Zum Vergleich eine 3-stellige Dezimalzahl: Es sind 10^3 = 1000 verschiedene Zahlen darstellbar. Die höchste Zahl ist 10^3 - 1 = 999.

verschiedene Zahlen = LOW KERNEL JUMPBLOCK: 000B:  LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
^n höchste Zahl = LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL
LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL
LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPT
B
^n - 1

Valid HTML   Valid CSS