Hexadezimalnumeralia in Python
Hexadezimalnumeralia werden durch »0x« eingeleitet. Danach folgen Hexadezimalziffern.
Einführende Beispiele
Die Werte der Hexadezimalzahlen sind zunächst genauso wie beim normalen Zahlensystem (Zehnersystem).
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x0
0
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x1
1
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x2
2
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x8
8
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x9
9
Zum Ausdrücken des Wertes «10» wird der Buchstabe »A« verwendet, »B« steht für «11» u.s.w.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xA
10
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xB
11
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xE
14
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xF
15
Der Buchstabe mit dem höchsten Wert ist »F« («15»). Die Zahl «16» wird dann mit zwei Stellen ausgedrückt, wobei der Wert des ersten Zeichens mit 16 multipliziert und dann der Wert des zweiten Zeichens addiert wird.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x10
16
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x11
17
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x12
18
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x20
32
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0x21
33
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xA0
160
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xA1
161
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xAF
175
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xB0
176
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xFF
255
Ein weiteres Beispiel
Im Hexadezimalsystem steht die Ziffer »F« für den Wert ‹ 15 ›.
Der Wert der vorletzten Stelle wird mit ‹ 16 › multiplziert.
Hexadezimalnumeralia werden durch ein einleitendes »0x« gekennzeichnet.
Daher ist der Wert des Ausdrucks »0xFF« ‹ 15×16+15 › also ‹ 255 ›.
- Eingabe eines Ausdrucks und Ausgabe einer Textdarstellung seines Wertes
0xFF
255
Hexadezimalnumeralia
Ein Hexadezimalnumerale (Plural: „Hexadezimalnumeralia“) ist eine Schreibweise einer bestimmten Zahl (vor allem im Quelltext) im Hexadezimalsystem (Zahlensystem zur Basis ‹ 16 ›).
Ein Beispiel für ein Hexadezimalnumerale hatten wir schon kennengelernt: »0xFF«.
Aufbau von Hexadezimalnumeralia
Unter einer „Hexadezimalziffer“ verstehen wir eine der Ziffern »0«, »1«, »2«, »3«, »4«, »5«, »6«, »7«, »8«, »9«, »a«, »A«, »b«, »B«, »c«, »C«, »d«, »D«, »e«, »E«, »f« oder »F«.
- Produktionsregel
Hexadezimalziffer
.-.
|-|---.--->( 0 )---.--->|-|
| '-' ^
| .-. |
'--->( 1 )---'
| '-' ^
| .-. |
'--->( 2 )---'
| '-' ^
| .-. |
'--->( 3 )---'
| '-' ^
| .-. |
'--->( 4 )---'
| '-' ^
| .-. |
'--->( 5 )---'
| '-' ^
| .-. |
'--->( 6 )---'
| '-' ^
| .-. |
'--->( 7 )---'
| '-' ^
| .-. |
'--->( 8 )---'
| '-' ^
| .-. |
'--->( 9 )---'
| '-' ^
| .-. |
'--->( a )---'
| '-' ^
| .-. |
'--->( A )---'
| '-' ^
| .-. |
'--->( b )---'
| '-' ^
| .-. |
'--->( B )---'
| '-' ^
| .-. |
'--->( c )---'
| '-' ^
| .-. |
'--->( C )---'
| '-' ^
| .-. |
'--->( d )---'
| '-' ^
| .-. |
'--->( D )---'
| '-' ^
| .-. |
'--->( e )---'
| '-' ^
| .-. |
'--->( E )---'
| '-' ^
| .-. |
'--->( f )---'
| '-' ^
| .-. |
'--->( F )---'
'-'
Ein Hexadezimalnumerale beginnt mit einer Null »0«, der ein kleines »x« oder ein großes »X« folgt. Danach darf beliebig oft ein optionaler Grundstrich und eine Hexadezimalziffer wiederholt werden.
Beispiele: »0X_FF« und »0xff«.
- Produktionsregel
Hexadezimalnumerale .---------------------------------------------.
Null kleines x | |
.-. .-. v .-. .-------------------. |
|-|--->( 0 )---.--->( x )---.---'---.--->( _ )---.--->| Hexadezimalziffer |---'--->|-|
'-' | '-' ^ | '-' ^ '-------------------'
| .-. | | |
'--->( X )---' '------------'
'-'
grosses X
Einordnung von Hexadezimalnumeralia
Ein Hexadezimalnumerale ist ein Literal (und damit ein Ausdruck).
- Produktionsregel
Literal
.----------------------.
|-|---.--->| Zeichenfolgenliteral |---.--->|-|
| '----------------------' |
| .----------------------. |
'--->| Dezimalnumerale |---'
| '----------------------' |
| .----------------------. |
'--->| Hexadezimalnumerale |---'
'----------------------'
Semantik
Der Wert eines Hexadezimalnumerales ist ein Objekt, das eine Zahl darstellt.
Der Wert einer Hexadezimalziffer
Der Wert eines Hexadezimalziffer wird in der folgenden Tabelle angegeben, indem zu einer Hexadezimalziffer in der linken Spalte rechts ein wertgleiches Dezimalnumeral angegeben wird.
- Wert einer Hexadezimalziffer
Ziffer Wert
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
a 10
A 10
b 11
B 11
c 12
C 12
d 13
D 13
e 14
E 14
f 15
F 15
Der Wert eines Hexadezimalnumerales
Falls das Hexadezimalnumerale nur aus einer Ziffer besteht, ist sein Wert der Zahlenwert jener Ziffer. So ergibt sich für das Hexadezimalnumerale »0x7« beispielsweise der Wert Sieben.
Falls das Dezimalnumerale aus mehr als einer Ziffer besteht, zerlegen wir es gedanklich in zwei Teile: die letzte Ziffer und den „vorderen Teil“, also den Teil vor der letzten Ziffer. Der Zahlenwert ist dann das Sechszehnfache des Wertes des vorderen Teils zuzüglich des Wertes der letzten Ziffer. So ergibt sich für das Hexadezimalnumerale »0xFF« beispielsweise das Sechszehnfache des Wertes von »F« plus dem Wert von »F«, also ‹ 255 ›.
Da bei Hexadezimalzahlen das Sechzehnfache eine besondere Rolle spielt, spricht man bei dieser Semantik vom „Hexadezimalsystem“ – das heißt vom „Sechzehnersystem“.
Numeralia
Literale für Zahlen nennt man Numeralia. Sowohl Dezimalnumeralia als auch Hexadezimalnumeralia sind Numeralia.
- Begriffshierarchie der Literale
Ausdruck
^
|
Literal
^
|
.-----------'-----------.
| |
Zeichenfolgenliteral Numerale
'abc' ^
|
.-----------'-----------.
| |
Dezimalnumerale Hexadezimalnumerale
123 0xFF
Anmerkung
Mit dem Sechzehnersystem können wir den Unterschied zwischen einem Numerale und einer Zahl verdeutlichen: »0xFF« und »255« sind zwei völlig verschiedene Numeralia, aber stehen beide für dieselbe Zahl.
Übungsfragen
? Ausgabe vorhersagen
Welche Ausgabe erscheint in einer Python -Konsole, welche eine Textdarstellung der Werte eingegebener Quelltexte ausgibt, für die folgende Eingabe?
- Eingabe
0x2A
? Hexadezimalnumerale ermitteln
Wie lautet die Hexadezimalnumeralia für die Zahlen Zehn und Zwanzig?
? Gleichheit von Werten
Ist der Wert des Dezimalnumerales »10« gleich dem Wert des Hexadezimalnumerales »0xA«?
? Gleichheit von Hexadezimalnumeralia
Ist das Dezimalnumerale »10« gleich dem Hexadezimalnumerale »0xA«?
Übungsaufgaben
/ Python anwenden
Verwenden Sie Python um den Wert des Hexadezimalnumerales »0xDE« im Dezimalsystem (im normalen Zahlensystem) darzustellen.
Aufbaudiagramme der Sprache ⃗
- Aufbaudiagramm für Ausdrücke
Zeichenfolgenliteral
.-. .-.
|-|---.--->( ' )---.------------------------------.--->( ' )---.--->|-|
| '-' ^ | '-' ^
| | .---------------------. | |
| '---| ein Zeichen außer ' |<---' |
| '---------------------' |
| .-. .-. |
'--->( " )---.------------------------------.--->( " )---'
'-' ^ | '-'
| .---------------------. |
'---| ein Zeichen außer " |<---'
'---------------------'Jede Dezimalziffer ausser 0
.-.
|-|---.--->( 1 )---.--->|-|
| '-' ^
| .-. |
'--->( 2 )---'
| '-' ^
| .-. |
'--->( 3 )---'
| '-' ^
| .-. |
'--->( 4 )---'
| '-' ^
| .-. |
'--->( 5 )---'
| '-' ^
| .-. |
'--->( 6 )---'
| '-' ^
| .-. |
'--->( 7 )---'
| '-' ^
| .-. |
'--->( 8 )---'
| '-' ^
| .-. |
'--->( 9 )---'
'-'Dezimalziffer
.-.
|-|---.-------->( 0 )----------.--->|-|
| '-' |
| .---------------. |
| | Jede | |
'--->| Dezimalziffer |---'
| ausser 0 |
'---------------'Dezimalnumerale (0)
.---------------.
| Jede |
|-|--->| Dezimalziffer |---.---------------------------------------.--->|-|
| ausser 0 | ^ |
'---------------' | |
| .---------------. |
'---| Dezimalziffer |----<--------------'
'---------------' ^ |
| .-. |
'---( _ )---'
'-'Dezimalnumerale (1)
.-.
.---( _ )---.
| '-' |
V |
.----<----------'---.
| |
V .-. |
|-|---'------>( 0 )-------'--->|-|
'-'Hexadezimalziffer
.-.
|-|---.--->( 0 )---.--->|-|
| '-' ^
| .-. |
'--->( 1 )---'
| '-' ^
| .-. |
'--->( 2 )---'
| '-' ^
| .-. |
'--->( 3 )---'
| '-' ^
| .-. |
'--->( 4 )---'
| '-' ^
| .-. |
'--->( 5 )---'
| '-' ^
| .-. |
'--->( 6 )---'
| '-' ^
| .-. |
'--->( 7 )---'
| '-' ^
| .-. |
'--->( 8 )---'
| '-' ^
| .-. |
'--->( 9 )---'
| '-' ^
| .-. |
'--->( a )---'
| '-' ^
| .-. |
'--->( A )---'
| '-' ^
| .-. |
'--->( b )---'
| '-' ^
| .-. |
'--->( B )---'
| '-' ^
| .-. |
'--->( c )---'
| '-' ^
| .-. |
'--->( C )---'
| '-' ^
| .-. |
'--->( d )---'
| '-' ^
| .-. |
'--->( D )---'
| '-' ^
| .-. |
'--->( e )---'
| '-' ^
| .-. |
'--->( E )---'
| '-' ^
| .-. |
'--->( f )---'
| '-' ^
| .-. |
'--->( F )---'
'-'Hexadezimalnumerale .---------------------------------------------.
Null kleines x | |
.-. .-. v .-. .-------------------. |
|-|--->( 0 )---.--->( x )---.---'---.--->( _ )---.--->| Hexadezimalziffer |---'--->|-|
'-' | '-' ^ | '-' ^ '-------------------'
| .-. | | |
'--->( X )---' '------------'
'-'
grosses XNumerale
.----------------------.
|-|---.--->| Dezimalnumerale |---.--->|-|
| '----------------------' |
| .----------------------. |
'--->| Hexadezimalnumerale |---'
'----------------------'Literal
.----------------------.
|-|---.--->| Zeichenfolgenliteral |---.--->|-|
| '----------------------' |
| .----------------------. |
'--->| Numerale |---'
'----------------------'Ausdruck
.---------.
|-|--->| Literal |--->|-|
'---------'