Programmiersprache C/C++

x. Numerische Effekte

Gegeben sind die folgenden drei Variablen:
  i1 = 32000; i2 = 1000; i3 = -2000;
Berechnet werden soll
  m = i1 + i2;
  n = i1 + i2 + i3;
Untersucht werden soll das Verhalten verschiedener C-Systeme bei unterschiedlichem Datentyp von i1, i2 und i3.

Variante 1

  int i1, i2, i3, m, n;

  MSVC 1.0    DOS     -32536 31000     
  TC 2.0      DOS     -32536 31000     
  GCC         DOS      33000 31000
Bei einigen Compilern stehen für den Datentyp int 16 Bit zur Verfügung, bei anderen 32 Bit.
Wertebereichsüberschreitungen bei der Integer-Arithmetik führen nicht zu Laufzeitfehlern.

Variante 2

  short i1, i2, i3, m, n;

  MSVC 1.0    DOS     -32536 31000     
  TC 2.0      DOS     -32536 31000     
  GCC         DOS     -32536 31000
Für den Datentyp short stehen im allgemeinen 16 Bit zur Verfügung.

Variante 3

  long i1, i2, i3, m, n;

  MSVC 1.0    DOS      33000 31000     
  TC 2.0      DOS      33000 31000     
  GCC         DOS      33000 31000
Für den Datentyp long stehen im allgemeinen 32 Bit zur Verfügung.

Variante 4

  unsigned i1, i2, i3, m, n;

  MSVC 1.0    DOS      33000 31000      Compilerwarnung wegen Wert von i3
  TC 2.0      DOS      33000 31000      keine Compilerreaktion
  GCC         DOS      33000 31000      keine Compilerreaktion

Zurück zum Menü
Zurück zur vorigen Seite Weiter zur nächsten Seite

P. Böhme, 22.12.1995