Die Subtraktion in C (Die Subtraktion in C), Lektion, Seite 722920
https://www.purl.org/stefan_ram/pub/subtraktion_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Die Subtraktion »…-…« in C 

Einführendes Beispiel

Das Zeichen »-« wird „Minus“ oder „Bindestrich“ genannt. Die Subtraktion wird mit dem Minus »-« geschrieben.

main.c

#include <stdio.h>

int main( void )
{ printf
( "%d\n", 2 - 3 ); }

Protokoll
-1

Syntax

Syntax

Additivausdruck

.-----------------------. .-. .-----------------------.
--->| Additivausdruck |--->( - )--->| Multiplikativausdruck |--->
'-----------------------' '-' '-----------------------'

Syntax, Typanforderungen, Typergebnisse, Assoziativität und Priorität sind bei diesem binären Operator wie bei der Addition, nur daß man den linken Operanden als Minuenden  und den rechten als Subtrahenden  bezeichnet. Die Semantik (der Wert) ist hingegen die der Subtraktion (Differenz).

Neue, erweiterte Syntax (Syntaxdiagramm)

Primaerausdruck
.-. .----------. .-.
--->.--->( ( )--->| Ausdruck |--->( ) )--->.--->
| '-' '----------' '-' ^
| .----------. |
'------------>| Literal |-------------'
'----------'

Vorzeichenausdruck
.--------------------.
---.------------>| Primaerausdruck |----.---->
| '--------------------' ^
| .-. .--------------------. |
'--->( - )--->| Vorzeichenausdruck |----'
| '-' '--------------------' |
| .-. .--------------------. |
'--->( + )--->| Vorzeichenausdruck |----'
'-' '--------------------'

Multiplikativausdruck
.--------------------.
---.--->| Vorzeichenausdruck |--------------------------------------.--->
| '--------------------' ^
| .--------------------. .-. .--------------------. |
'--->| Vorzeichenausdruck |--->( * )--->| Vorzeichenausdruck |---'
| '--------------------' '-' '--------------------' |
| .--------------------. .-. .--------------------. |
'--->| Vorzeichenausdruck |--->( / )--->| Vorzeichenausdruck |---'
'--------------------' '-' '--------------------'

Additivausdruck
.-----------------------.
---.--->| Multiplikativausdruck |-----------------------------------------.--->
| '-----------------------' ^
| .-----------------------. .-. .-----------------------. |
'--->| Additivausdruck |--->( + )--->| Multiplikativausdruck |---'
| '-----------------------' '-' '-----------------------' |
| .-----------------------. .-. .-----------------------. |
'--->| Additivausdruck |--->( - )--->| Multiplikativausdruck |---'
'-----------------------' '-' '-----------------------'

Ausdruck
.-----------------.
--->| Additivausdruck |--->
'-----------------'

N2176 6.5.6 Additive operators
Syntax

1 additive-expression:

multiplicative-expression

additive-expression + multiplicative-expression

additive-expression - multiplicative-expression

2

Beispiele

●   Gleichheitstest

Die Subtraktion kann gut verwendet werden, um zu erkennen, ob zwei Numeralia den gleichen Zahlenwert repräsentieren: Nur dann ist ihre Differenz gleich 0.

main.c

#include <stdio.h>

int main( void )
{ printf
( "%g\n", 0 - 0.00 ); }

stdout
0

Der Wert von »0« ist ja zunächst nicht gleich dem Wert von »0.00«, da beide Werte sich schon im Typ unterscheiden. Da bei dieser Subtraktion der Typ der beiden Operanden jedoch nach »double« angeglichen wird, ergibt sich dann doch das Ergebnis »0.0«.

Der Wert »1.0000001« und der Wert »1.000000001« werden beide in der gleichen Weise ausgegeben.

main.c

#include <stdio.h>

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

stdout
1
main.c

#include <stdio.h>

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

stdout
1

Durch Berechnung der Differenz  von »1.0000001« und »1.000000001« wird aber ein Unterschied sichtbar.

main.c

#include <stdio.h>

int main( void )
{ printf
( "%g\n", 1.0000001 - 1.000000001 ); }

stdout
9.9e-008

●   Punktnumeralia

Es wird noch einmal deutlich, daß verschiedene  Literale denselben  Wert haben können, also sind Literale nicht dasselbe wie ihre Werte.

main.c

#include <stdio.h>

int main( void )
{ printf
( "%g\n", 2.0 - 1.9999999999999999 ); }

stdout
0

Übungsfragen

?   Operanden

Wie viele Operanden im Ausdruck »8 - 2« sind positiv?

Wie viele Operanden hat der Operator »-« im Ausdruck »8 - 2 * 3«?

Wie viele Operationen (Rechenschritte) werden bei der Auswertung des Ausdrucks »8 - 2 * 3« ausgeführt?

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 stefanram722920 stefan_ram:722920 Die Subtraktion in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722920, slrprddef722920, 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/subtraktion_c