Hexadezimalsystem: Unterschied zwischen den Versionen

Aus KGS-Wiki
Keine Bearbeitungszusammenfassung
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Die '''Basis''' unseres Zahlensystems, des Dezimalsystems, ist die Zahl 10. Wir benutzen die zehn Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 und der Wert jeder Stelle ergibt sich aus Potenzen der Zahl 10: die ganz linke Stelle, die Einerstelle hat den Stellenwert 1 = 10⁰, die nächste Stelle, die Zehnerstelle, den Stellenwert 10 = 10¹, die nächsthöhere Stelle hat den Stellenwert 100 = 10² usw.
Die '''Basis''' unseres Zahlensystems, des Dezimalsystems, ist die Zahl 10. Wir benutzen die zehn Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 und der Wert jeder Stelle ergibt sich aus Potenzen der Zahl 10: die ganz linke Stelle, die Einerstelle hat den Stellenwert <math>1 = 10^0</math>, die nächste Stelle, die Zehnerstelle, den Stellenwert <math>10 = 10^1</math>, die nächsthöhere Stelle hat den Stellenwert <math>100 = 10^2</math> usw.


'''Beispiel:''' Die Zahl 8605 hat vier Stellen und setzt sich zusammen als 8605 = 8000 + 600 + 0 + 5 =8·1000 + 6·100 + 0·10 + 5·1 = 8·10³ + 6·10² + 0·10¹ + 5·10⁰.
{{Beispiel|1=
{| class="wikitable"
Die Zahl 8605 hat vier Stellen und setzt sich zusammen als
|+Die Dezimalzahl 8605 (achttausendsechshundertfünf)  
{{{!}} class="wikitable"
{{!}}+Die Dezimalzahl 8605 (achttausendsechshundertfünf)
!Stelle
!Stelle
!Tausender
!Tausender
Zeile 9: Zeile 10:
!Zehner
!Zehner
!Einer
!Einer
|-
{{!}}-
|Ziffer
{{!}}Ziffer
|8
{{!}}<math>8</math>
|6
{{!}}<math>6</math>
|0
{{!}}<math>0</math>
|5
{{!}}<math>5</math>
|-
{{!}}-
|Stellenwert
{{!}}Stellenwert
|10³ = 1000
{{!}}<math>10^3 = 1000</math>
|10² = 100
{{!}}<math>10^2 = 100</math>
|10¹ = 10
{{!}}<math>10^1 = 10</math>
|10⁰ = 1
{{!}}<math>10^0 = 1</math>
|-
{{!}}-
|Wert
{{!}}Wert
|8·1000 = 8000
{{!}}<math>8 \cdot 1000 = 8000</math>
|6·100 = 600
{{!}}<math>6 \cdot 100 = 600</math>
|0·10 = 0
{{!}}<math>0 \cdot 10 = 10</math>
|5·1 = 5
{{!}}<math>5 \cdot 10^0 = 5</math>
|}
{{!}}}
Wir können aber auch Zahlensysteme mit anderen Basen benutzen, z.B. mit der '''Basis 16'''. Dieses System heißt '''Hexadezimalsystem''' und benutzt die 16 Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A ( =10), B (=11), C (=12), D (=13), E (=14), F (=15). Die Stellenwerte berechnen sich entsprechend nach Sechzehnerpotenzen: 1 (=16⁰), 16 (=16¹), 256 (=16²) usw.
lies: <math display="block">\begin{align}
8605 &= 8000+600+0+5\\
&= 8 \cdot 1000 + 6 \cdot 100 + 0 \cdot 10 + 5 \cdot 1 \\
&= 8 \cdot 10^3 + 6 \cdot 10^2 + 0 \cdot 10^1 + 5 \cdot 10^0
\end{align}</math>.
}}
Wir können aber auch Zahlensysteme mit anderen Basen benutzen, z.B. mit der '''Basis 16'''. Dieses System heißt [[Hexadezimalsystem]] und benutzt die sechzehn Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (=10), B (=11), C (=12), D (=13), E (=14), F (=15). Die Stellenwerte berechnen sich entsprechend nach Sechzehnerpotenzen: <math>1 (=16^0), 16 (=16^1), 256 (=16^2), 4096 (=16^3) \dots</math>


'''Beispiel:''' Die Zahl BA55 hat vier Stellen und setzt sich folgendermaßen zusammen:
{{Beispiel|1=
{| class="wikitable"
Die Zahl BA55 hat vier Stellen und setzt sich folgendermaßen zusammen:
|+
{{{!}} class="wikitable"
{{!}}+
!Stelle
!Stelle
!16³
!<math>16^3</math>
!16²
!<math>16^2</math>
!16¹
!<math>16^1</math>
!16⁰
!<math>16^0</math>
|-
{{!}}-
|Ziffer
{{!}}Ziffer
|B
{{!}}<math>\textrm{B}</math>
|A
{{!}}<math>\textrm{A}</math>
|5
{{!}}<math>5</math>
|5
{{!}}<math>5</math>
|-
{{!}}-
|Stellenwert
{{!}}Stellenwert
|16³ = 4096
{{!}}<math>16^3 = 4096</math>
|16² = 256
{{!}}<math>16^2 = 256</math>
|16¹ = 16
{{!}}<math>16^1 = 16</math>
|16⁰ = 1
{{!}}<math>16^0 = 1</math>
|-
{{!}}-
|Wert
{{!}}Wert
|11·4096 = 45056
{{!}}<math>11 \cdot 4096 = 45056</math>
|10·256 = 2560
{{!}}<math>10 \cdot 256 = 2560</math>
|5·16 = 80
{{!}}<math>5 \cdot 16 = 80</math>
|5·1 = 5
{{!}}<math>5 \cdot 16^0 = 5</math>
|}
{{!}}}
lies: BA55 = 11·16³ + 10·16² + 5·16¹ + 5·16⁰ = 11·4096 + 10·256 + 5·16 + 5·1 = 45056 + 2560 + 80 + 5 = 47701.
lies: <math display="block">\begin{align}
\textrm{BA}55 &= 11 \cdot 16^3 + 10 \cdot 16^2 + 5 \cdot 16^1 + 5 \cdot 16^0\\
&= 11 \cdot 4096 + 10 \cdot 256 + 5 \cdot 16 + 5 \cdot 1\\
&= 45056 + 2560 + 80 + 5 = 47701
\end{align}</math>}}


Um die Zahlen der verschiedenen Zahlensysteme unterscheiden zu können, schreibt man die Basis in der Regel dahinter: die dezimale <math>123_{10}</math>
ist einhundertdreiundzwanzig, die hexadezimale <math>123_{16}</math>  ist zweihundertundeinundneunzig.
== Umrechnung Hexadezimal → Dezimal ==
== Umrechnung Hexadezimal → Dezimal ==
Die einfachste Möglichkeit, eine Hexadezimalzahl in eine Dezimalzahl umzurechnen, ist, die Zahl ziffernweise aufzuschreiben...
Die einfachste Möglichkeit, eine Hexadezimalzahl in eine Dezimalzahl umzurechnen, ist, die Zahl ziffernweise aufzuschreiben...
Zeile 64: Zeile 78:
|+
|+
!Ziffer
!Ziffer
!B
!<math>\textrm{B}</math>
!A
!<math>\textrm{A}</math>
!D
!<math>\textrm{D}</math>
!B
!<math>\textrm{B}</math>
!0
!<math>\textrm{0}</math>
!1
!<math>\textrm{1}</math>
|}
|}
... unter jede Ziffer die Stelligkeit zu notieren...
... unter jede Ziffer die Stelligkeit zu notieren...
Zeile 75: Zeile 89:
|+
|+
!Ziffer
!Ziffer
!B
!<math>\textrm{B}</math>
!A
!<math>\textrm{A}</math>
!D
!<math>\textrm{D}</math>
!B
!<math>\textrm{B}</math>
!0
!<math>\textrm{0}</math>
!1
!<math>\textrm{1}</math>
|-
|-
|Stelligkeit
|Stelligkeit
|1.048.576
|<math>1048576</math>
|65.536
|<math>65536</math>
|4096
|<math>4096</math>
|256
|<math>256</math>
|16
|<math>16</math>
|1
|1
|}
|}
Zeile 94: Zeile 108:
|+
|+
!Ziffer
!Ziffer
!B
!<math>\textrm{B}</math>
!A
!<math>\textrm{A}</math>
!D
!<math>\textrm{D}</math>
!B
!<math>\textrm{B}</math>
!0
!<math>\textrm{0}</math>
!1
!<math>\textrm{1}</math>
|-
|-
|Stelligkeit
|Stelligkeit
|1.048.576
|<math>1048576</math>
|65.536
|<math>65536</math>
|4096
|<math>4096</math>
|256
|<math>256</math>
|16
|<math>16</math>
|1
|1
|-
|-
|Wert
|Wert
|11.534.336
|<math>11534336</math>
|655.360
|<math>655360</math>
|53.248
|<math>53248</math>
|2806
|<math>2806</math>
|0
|<math>0</math>
|1
|1
|}
|}
... und diese Werte aufzusummieren: 11.534.336 + 655.360 + 53.248 + 2806 + 0 + 1 = 12.245.761
... und diese Werte aufzusummieren: <math>11534336 + 655360 + 53248 + 2806 + 0 + 1 = 12245761</math>.
 
=== Das Horner-Schema ===
Diese Methode birgt aber das Risiko, sich zu verrechnen oder zu vertippen: <math>11 \cdot 1048576</math> berechnet man nicht eben im Kopf und beim Eintippen in den Taschenrechner passiert schnell ein Zahlendreher. Eine andere Methode ist das so genannte [[Horner-Schema]].
 
Hierbei liest man die Zahl ziffernweise von links nach rechts und multipliziert vor jeder neu hinzukommenden Ziffer den Zwischenstand mit 16.
 
{{:Horner-Schema/Beispiele/Hexadezimal_nach_Dezimal}}


== Umrechnung Dezimal → Hexadezimal ==
== Umrechnung Dezimal → Hexadezimal ==
=== Teilen mit Rest ===
Bevor man mit Brüchen rechnet, lernt man in der Grundschule, mit Rest zu teilen. Das Ergebnis der Division besteht dann aus zwei Zahlen: dem Ergebnis, das dem Teil vor dem Komma des eigentlichen Ergebnisses entspricht, und einem Rest, der nicht mehr ganzzahlig weitergeteilt werden kann.
Beispiel: <math>42 : 5 = 8\ \textrm{Rest}\ 2</math> → lies: die 5 passt 8 Mal in die 42 rein, 2 bleiben als Rest übrig (weil <math>5 \cdot 8 = 40</math> und <math>42 - 40 = 2</math>).
Bei der Umrechnung von Dezimal- in Hexadezimalzahlen teilt man nun die Dezimalzahl mit Rest durch 16. Das Ergebnis teilt man wieder mit Rest durch 16 und wiederholt dies, bis das Ergebnis 0 ist. Die Reste ergeben dann, von unten nach oben gelesen, die Ziffern der Hexadezimalzahl.
<math>\begin{align}
123456 : 16 &= 7716\ \textrm{Rest}\ 0\\
7716 : 16 &= 482\ \textrm{Rest}\ 4\\
482 : 16 &= 30\ \textrm{Rest}\ 2\\
30 : 16 &= 1\ \textrm{Rest}\ 14 \qquad (= \textrm{E})\\
1 : 16 &= 0\ \textrm{Rest}\ 1
\end{align}</math>
123456 ist in hexadezimaler Schreibweise also 1E240.
== Verwendung in der Informatik ==
Hexadezimalzahlen haben den Vorteil, dass sie sich gut auf [[Binärsystem|Binärzahlen]] abbilden lassen: eine Hexadezimalziffer entspricht immer genau vier Binärziffern. Im Gegensatz zu Binärzahlen sind Hexadezimalzahlen aber deutlich kürzer und leichter lesbar. Aus diesem Grund werden längere Binärzahlen wie etwa die 48 Bit langen [[MAC-Adresse|MAC-Adressen]] oder die 128 Bit langen [[IP-Adresse|IPv6-Adressen]] durch Hexadezimalzahlen dargestellt.
Verbreitet ist auch die Darstellung von [[RGB-Farbmodell|RGB-Farben]] durch sechs Hexadezimalziffern, von denen je zwei für den Rotwert, zwei für den Grünwert und zwei für den Blauwert stehen. Die RGB-Farbe (192, 255, 238) kann man z.B. auch als #C0FFEE schreiben.
Um Sonderzeichen in [[HTML]] zu schreiben, kann man ebenfalls Hexadezimalzahlen einsetzen. Jedem Zeichen ist ein so genannter Unicode-Codepunkt zugeordnet, durch den es eindeutig identifiziert werden kann. Um zum Beispiel das Zeichen &#x1F4A9; in einer HTML-Seite einzufügen, kann man dessen Codepunkt 1F4A9 nutzen und das Zeichen mit <code>&amp;#x1F4A9;</code> einfügen.
Eine ähnliche Funktionsweise existiert in LibreOffice. Wenn man dort den hexadezimalen Codepunkt eines Zeichens eingibt und dann {{Tastatur|AltC}} drückt, wird die Hexadezimalzahl in das dazugehörige Zeichen umgewandelt.
== Zum Weiterlesen ==
* {{Inf-Schule|1.2.2.5|Fachkonzept Hexadezimalsystem}}
[[Kategorie:Zahlsystem]]
[[Kategorie:Codierung]]

Aktuelle Version vom 12. September 2024, 15:04 Uhr

Die Basis unseres Zahlensystems, des Dezimalsystems, ist die Zahl 10. Wir benutzen die zehn Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 und der Wert jeder Stelle ergibt sich aus Potenzen der Zahl 10: die ganz linke Stelle, die Einerstelle hat den Stellenwert , die nächste Stelle, die Zehnerstelle, den Stellenwert , die nächsthöhere Stelle hat den Stellenwert usw.

💬
Beispiel

Die Zahl 8605 hat vier Stellen und setzt sich zusammen als

Die Dezimalzahl 8605 (achttausendsechshundertfünf)
Stelle Tausender Hunderter Zehner Einer
Ziffer
Stellenwert
Wert

lies:

.

Wir können aber auch Zahlensysteme mit anderen Basen benutzen, z.B. mit der Basis 16. Dieses System heißt Hexadezimalsystem und benutzt die sechzehn Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (=10), B (=11), C (=12), D (=13), E (=14), F (=15). Die Stellenwerte berechnen sich entsprechend nach Sechzehnerpotenzen:

💬
Beispiel

Die Zahl BA55 hat vier Stellen und setzt sich folgendermaßen zusammen:

Stelle
Ziffer
Stellenwert
Wert

lies:

Um die Zahlen der verschiedenen Zahlensysteme unterscheiden zu können, schreibt man die Basis in der Regel dahinter: die dezimale ist einhundertdreiundzwanzig, die hexadezimale   ist zweihundertundeinundneunzig.

Umrechnung Hexadezimal → Dezimal

Die einfachste Möglichkeit, eine Hexadezimalzahl in eine Dezimalzahl umzurechnen, ist, die Zahl ziffernweise aufzuschreiben...

Ziffer

... unter jede Ziffer die Stelligkeit zu notieren...

Ziffer
Stelligkeit 1

... für jede Stelle ihren Wert auszurechnen...

Ziffer
Stelligkeit 1
Wert 1

... und diese Werte aufzusummieren: .

Das Horner-Schema

Diese Methode birgt aber das Risiko, sich zu verrechnen oder zu vertippen: berechnet man nicht eben im Kopf und beim Eintippen in den Taschenrechner passiert schnell ein Zahlendreher. Eine andere Methode ist das so genannte Horner-Schema.

Hierbei liest man die Zahl ziffernweise von links nach rechts und multipliziert vor jeder neu hinzukommenden Ziffer den Zwischenstand mit 16.

Umrechnung Dezimal → Hexadezimal

Teilen mit Rest

Bevor man mit Brüchen rechnet, lernt man in der Grundschule, mit Rest zu teilen. Das Ergebnis der Division besteht dann aus zwei Zahlen: dem Ergebnis, das dem Teil vor dem Komma des eigentlichen Ergebnisses entspricht, und einem Rest, der nicht mehr ganzzahlig weitergeteilt werden kann.

Beispiel: → lies: die 5 passt 8 Mal in die 42 rein, 2 bleiben als Rest übrig (weil und ).

Bei der Umrechnung von Dezimal- in Hexadezimalzahlen teilt man nun die Dezimalzahl mit Rest durch 16. Das Ergebnis teilt man wieder mit Rest durch 16 und wiederholt dies, bis das Ergebnis 0 ist. Die Reste ergeben dann, von unten nach oben gelesen, die Ziffern der Hexadezimalzahl.

123456 ist in hexadezimaler Schreibweise also 1E240.

Verwendung in der Informatik

Hexadezimalzahlen haben den Vorteil, dass sie sich gut auf Binärzahlen abbilden lassen: eine Hexadezimalziffer entspricht immer genau vier Binärziffern. Im Gegensatz zu Binärzahlen sind Hexadezimalzahlen aber deutlich kürzer und leichter lesbar. Aus diesem Grund werden längere Binärzahlen wie etwa die 48 Bit langen MAC-Adressen oder die 128 Bit langen IPv6-Adressen durch Hexadezimalzahlen dargestellt.

Verbreitet ist auch die Darstellung von RGB-Farben durch sechs Hexadezimalziffern, von denen je zwei für den Rotwert, zwei für den Grünwert und zwei für den Blauwert stehen. Die RGB-Farbe (192, 255, 238) kann man z.B. auch als #C0FFEE schreiben.

Um Sonderzeichen in HTML zu schreiben, kann man ebenfalls Hexadezimalzahlen einsetzen. Jedem Zeichen ist ein so genannter Unicode-Codepunkt zugeordnet, durch den es eindeutig identifiziert werden kann. Um zum Beispiel das Zeichen 💩 in einer HTML-Seite einzufügen, kann man dessen Codepunkt 1F4A9 nutzen und das Zeichen mit &#x1F4A9; einfügen.

Eine ähnliche Funktionsweise existiert in LibreOffice. Wenn man dort den hexadezimalen Codepunkt eines Zeichens eingibt und dann AltC drückt, wird die Hexadezimalzahl in das dazugehörige Zeichen umgewandelt.

Zum Weiterlesen