Christian schrieb:
> 1. Das Sprungziel kann nur in 4 Bit angegeben werden und das ist afaik
> maximal 15 (Dezimal). Richtig?
Ja richtig. Von 0 bis 15. Also 16 verschiedene Werte.
> 2. Was bedeutet High-Nibble und wieso ergibt sich ein Adressraum von
> 255?
Du kennst 1 Byte?
Ein Byte ist etwas das aus 8 Bit besteht, mit den Bits 7 bis 0
1 | 7 6 5 4 3 2 1 0
|
2 | +---+---+---+---+---+---+---+---+
|
3 | | | | | | | | | |
|
4 | +---+---+---+---+---+---+---+---+
|
aus praktischen Gründen unterteilt man 1 Byte weiter in 2 sog. Nibbles,
also 4 Bit Einheiten:
1 | 7 6 5 4 3 2 1 0
|
2 | +---+---+---+---+---+---+---+---+
|
3 | | | | | | | | | |
|
4 | +---+---+---+---+---+---+---+---+
|
5 |
|
6 | | | |
|
7 | +-- Nibble -----+--- Nibble ----+
|
Zu den 255. Na, ja: wie weit kann man denn mit 1 Byte zählen? Wieviele
unterschiedliche Zustände gibt es denn in 1 Byte mit in Summe 8 Bit?
> 3. 00 bis 7F entspricht laut Heft dezimal 0-127, wie ist das zu
> verstehen?
0x7F sind ja 7 Bit, alle auf 1. Welcher Dezimalzahl entspricht denn das?
Oder anders ausgedrückt: wie weit kann man denn mit 7 Bit zählen.
1 | mit 1 Bit kann man bis 1 zählen ( 2 - 1 )
|
2 | mit 2 Bit kann man bis 3 zählen ( 4 - 1 )
|
3 | mit 3 Bit kann .... 7 zählen ( 8 - 1 )
|
4 | mit 4 Bit .... 15 zählen ( 16 - 1 )
|
5 | 5 31 ( 32 - 1 )
|
6 | 6 63 ( 64 - 1 )
|
7 | 7 127 ( 128 - 1 )
|
8 | 8 255 ( 256 - 1 )
|
> 7 Hexadezimal entspricht doch auch 7 Dezimal und F einer 15 ?
Ja, aber du musst das auch richtig zusammensetzen.
Die Dezimalzahl 23 ist ja auch nicht einfach 2 entspricht einer
dezimalen 2 und 3 einer dezimalen 3. Da fehlt noch eine Zutat: nämlich
das der komplette Ziffernwert von der Stelle abhängt, an der diese
Ziffer auftaucht.
Die 5 in 5x bzw. in x5 hat eine andere Wertigkeit, je nachdem an welcher
POsition sie ist. Einmal sind das 5*10 (also 50), und das andere mal nur
5.
Darum nennt man solche Zahlensysteme ja auch Stellenwertsysteme.
Bei Hexadezimalzahlen ist das auch nicht anders. Die Zahl 7F wäre
dezimal dann 7 * 16 + 15 = 127, denn die 7 an der 'Zehner-Position' hat
die Wertigkeit 16
Die 16 übernimmt die Rolle, die in deinem gewohnten System die 10 hat.
Daher ja auch Hexadezimal.
> 4. Welche Seite muss ich angeben wenn ich z.B. zur Adresse 115 springen
> möchte?
Wandle dir die Zahl in eine Hex-Zahl. Das untere Nibble ist die Adresse,
das obere Nibble ist die Seite. Und praktischerweise sind die Nibble
genau so angeordnet, das jedes Nibble einer der beiden Ziffern einer
Hexadezimalzahl entspricht. In der Hexadezimalzahl 7F ist also das
höherwertige Nibble 7 und das niederwertige Nibble ist F. Die Seite ist
also 7 und die Adresse innerhalb der Seite ist F.
Für beides kann man leicht das Bitmuster angeben. Genau darauf begründet
sich auch die Beliebtheit des Hexadezimalsystems auf dieser
Programmierebene. Weil es eine einfache 1:1 Zuordnung von Hex-Ziffern
(und damit den Nibbles) zu den Bitmustern der Ziffern und damit zum
kompletten Bitmuster eines Bytes gibt. Etwas das mit Dezimalzahlen bei
weitem nicht so gut funktioniert. Da muss man immer rechnen, während man
bei Hex-Zahlen einfach nur eine einfach zu merkende Tabelle im Kopf
haben muss um die Binärrepräsentierung einer Zahl zu ermitteln.
Du solltest noch mal ein bischen über grundlegende Eigenschaften von
Zahlensystemen nachdenken. Insbesondere über Stellenwertsysteme und
welche Eigenschaften sich daraus ergeben, dass eine Ziffer je nachdem an
welcher Stelle sie in einer Zahl auftaucht eine andere Wertigkeit hat.
Und dann nochmal in deinem Heft über Dezimal-Hex Umrechnung bzw.
umgekehrt Hex nach Dezimal nachlesen und sinnieren bzw. Übungen dazu
machen.