Numeralia in C (Numeralia in C), Lektion, Seite 722904
https://www.purl.org/stefan_ram/pub/numeralia_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Numeralia in C 

Einführende Beispiele

Auch eine Folge von Ziffern  ohne Anführungszeichen ist ein Ausdruck. Solch ein Ausdruck kann eine Zahl  angeben. Das folgende Programm gibt beispielsweise eine Textdarstellung des Wertes des Ausdrucks »123« aus.

main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", 123 ); }

stdout
123

Zur Ausgabe einer Zahl ist ein »d« an Stelle des bisher verwendeten »s« zu verwenden. Wir nennen einen Buchstaben wie »d« oder »s« einen Umwandlungsspezifizierer.

Wir müssen den bisher verwendeten Ausgaberahmen  nun also etwas anpassen : Von nun an hat er zwei Ellipsen (Lücken) »«. Die erste Ellipse kann einen Umwandlungsspezifizierer, also »s« oder »d«, aufnehmen. Die zweite Ellipse einen Ausdruck.

Ausdruckrahmen
#include <stdio.h>
int main( void )
{ printf
( "%
...\n", ... ); }
+ zulässige Angaben
»s« und »"Hallo, Welt!"«
= main.c

#include <stdio.h>

int main( void )
{ printf
( "%
s\n", "Hallo, Welt!" ); }

stdout
Hallo, Welt!
Ausdruckrahmen

#include <stdio.h>

int main( void )
{ printf
( "%...\n", ... ); }

+ zulässige Angaben
»d« und »123«
= main.c

#include <stdio.h>

int main( void )
{ printf
( "%
d\n", 123 ); }

stdout
123

Wir listen die Umwandlungsspezifizierer auf:

Umwandlungsspezifizierer und Ausdrücke

... ... Merkwort

s  "Text" s-tring
d  123 d-ezimalsystem

In den Ausdruckrahmen  kann ein Umwandlungsspezifizierer  und ein Ausdruck  eingesetzt werden.

Fachbegriffe

»d« und »s« sind Umwandlungsspezifizierer.

»%d« und »%s« sind Umwandlungsspezifikationen.

Weitere Beispiele

Wir betrachten noch einige weitere Beispiele zur Ausgabe von Zahlen:

main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", 32767 ); }

stdout
32767
main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", 0 ); }

stdout
0
main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", 12 ); }

stdout
12

Die Ausgabe des folgenden Programms läßt sich nicht von der Ausgabe des vorigen Programms unterscheiden.

main.c

#include <stdio.h>

int main( void )
{ printf
( "%s\n", "12" ); }

stdout
12

Numeralia

Ein Numerale  (also ein Zahlwort, Plural: „Numeralia“) ist eine Schreibweise einer bestimmten Zahl (vor allem im Quelltext). Eine Zahl ist der Wert  eines Numerales.

 

Numerale
32767
Zahl
32767

 

»0« und »00« sind zwei verschiedene Numeralia, haben aber dieselbe  Zahl als Wert.

Numerale
0
Zahl
0
Numerale
00
Zahl
0

Numeralia, außer »0« selber, sollten nicht mit »0« beginnen. Die Zahl ‹ 12 › sollte also beispielsweise als »12« und nicht als »012« geschrieben werden! (Ein mit »0« beginnendes Numerale wie »012« hat in C  eine besondere Bedeutung, die aber nur selten benötigt wird und deswegen hier noch nicht weiter behandelt wird.)

Aufbau

Eine Dezimalziffer  ist eines der zehn Schriftzeichen »0«, »1«, »2«, »3«, »4«, »5«, »6«, »7«, »8«, und »9«.

Ein Numerale ist eine Folge von Dezimalziffern. Sie darf, außer beim Numerale »0« nicht mit der Ziffer »0« beginnen. Beispiele: »0«, »1«, »2«, »10«, »11«, »100«, »101« oder »1000«.

Das folgende Aufbaudiagramm stellt diese Regeln bildlich dar.

Aufbaudiagramm

Jede Dezimalziffer ausser 0
.-.
|-|---.--->( 1 )---.--->|-|
| '-' ^
| .-. |
'--->( 2 )---'
| '-' ^
| .-. |
'--->( 3 )---'
| '-' ^
| .-. |
'--->( 4 )---'
| '-' ^
| .-. |
'--->( 5 )---'
| '-' ^
| .-. |
'--->( 6 )---'
| '-' ^
| .-. |
'--->( 7 )---'
| '-' ^
| .-. |
'--->( 8 )---'
| '-' ^
| .-. |
'--->( 9 )---'
'-'

Dezimalziffer
.-.
|-|---.-------->( 0 )----------.--->|-|
| '-' |
| .---------------. |
| | Jede | |
'--->| Dezimalziffer |---'
| ausser 0 |
'---------------'

Dezimalnumerale .-----------.
| |
v .-. |
.--------------------'-->( 0 )---'---------------------.
| '-' |
| .---------------. |
| | Jede | v
|-|---'--->| Dezimalziffer |---.-------------------------.---'--->|-|
| ausser 0 | ^ |
'---------------' | |
| .---------------. |
'-----| Dezimalziffer |---'
'---------------'

Semantik

(Die Semantik eines Numerales beschreibt, wie man dessen Wert  aus den Zeichen des Numerales gewinnt.)

Den Wert eines Numerales erhält man, indem man den auch aus dem Alltag für Numeralia geläufigen Wert abliest. Beispielsweise steht das Numerale »10« für die Zahl Zehn.

Literale

Der Oberbegriff für „Zeichenfolgenliteral“ und „Numerale“ ist „Literal “.

Wert von Literalen

Literal Wert (in symbolischer Schreibweise)

"abc" abc (Zeichenfolge)
123 123 (Zahl)

Wenn ein Teil eines Programmes für einen bestimmten Wert steht, so sagt man auch, daß er diesen Wert habe  oder angebe  oder notiere  oder darstelle.

»"abc"« ist ein Zeichenfolgenliteral und »123« ist ein Numerale, beides sind Literale. Jedes Literal hat einen Wert.

Literale

Literal

.----------------------.
---.--->| Zeichenfolgenliteral |---.--->
| '----------------------' |
| .----------------------. |
'--->| Numerale |---'
'----------------------'

Ausdruck

.---------.
--->| Literal |--->
'---------'

Übungsfragen

?   Ausgabe vorhersagen

Was gibt das folgende Programm aus?

main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", 7 ); }

Dies ist keine Scherz- oder Fangfrage, sondern eine relativ leichte Übungsfrage!

?   Gleichheit von Werten

Ist der Wert des Numerales »0« gleich dem Wert des Numerales »00«?

?   Gleichheit von Numeralia

Ist das Numerale »0« gleich dem Numerale »00«?

?   Programm lesen

Warum gibt das folgende Programm keine Darstellung des Wertes «0» aus?

main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", O ); }

?   Programm lesen

Warum gibt das folgende Programm keine Darstellung des Wertes «1» aus?

main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", l ); }

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722904 stefan_ram:722904 Numeralia in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722904, slrprddef722904, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/numeralia_c