Hallo ihr Lieben,
ich möchte die Werte für den Bereichsüberlauf von Datentypen testen. In der Theorie scheint alles klar:
short int -> Wertebereich: -2^15,...,0,...,((2^15)-1) = -32768 bis 32767
Eingegebener Wert: 34567
-> 1800 zu groß für den Wertebereich. Bis 32767 ist klar, danach wie auf der Uhr um 1800 Zahlen weitergehen. Dann lande ich bei der Zahl -30969.
Jetzt möchte ich das Ganze mit einem Mini-Programm testen:
Da kommt aber immer -178 als Ergebnis raus. Woran könnte das liegen? Ich kann mir das nicht erklären. Testen mit 5 oder 1 ergab auch immer den Wert -178.
Vielen Dank schonmal für eure Hilfe!
ich möchte die Werte für den Bereichsüberlauf von Datentypen testen. In der Theorie scheint alles klar:
short int -> Wertebereich: -2^15,...,0,...,((2^15)-1) = -32768 bis 32767
Eingegebener Wert: 34567
-> 1800 zu groß für den Wertebereich. Bis 32767 ist klar, danach wie auf der Uhr um 1800 Zahlen weitergehen. Dann lande ich bei der Zahl -30969.
Jetzt möchte ich das Ganze mit einem Mini-Programm testen:
Code:
#include <stdio.h>
int main()
{
short int a;
printf("Bitte a eingeben: ");
scanf("%hi",&a);
printf("%hi",&a);
return 0;
}
Da kommt aber immer -178 als Ergebnis raus. Woran könnte das liegen? Ich kann mir das nicht erklären. Testen mit 5 oder 1 ergab auch immer den Wert -178.
Vielen Dank schonmal für eure Hilfe!