8 svar
182 visningar
Alan123 behöver inte mer hjälp
Alan123 278 – Fd. Medlem
Postad: 14 aug 2017 19:42 Redigerad: 14 aug 2017 19:42

Problematisk kod

Antag att a, b och c är heltal av typen int.
c = a * b;
Kan ovanstående kod någonsin vara problematiskt? Motivera ditt svar väl (vilket du i och för sig alltid skall göra)

 

Någon som vet några tips?

Bubo 7322
Postad: 14 aug 2017 19:45

Hur har du tänkt själv? Vad skulle kunna gå fel?

Ingemar 517 – Fd. Medlem
Postad: 14 aug 2017 19:46

Vad tror du händer om C blir mindre/större än: −32,767 till +32,767?

Stokastisk 3597 – Fd. Medlem
Postad: 14 aug 2017 19:47

Testa följande kod

a = 1 << 16;

b = 1 << 16;

c = a * b;

Vad kommer c vara nu?

Alan123 278 – Fd. Medlem
Postad: 14 aug 2017 19:50

Har ingen aning faktiskt. Om det står omvänt dvs a * b = c;  tror ja det blir problematiskt, men tror inte det är svaret på frågan...

Bubo 7322
Postad: 14 aug 2017 19:51

c skall också vara en int.

Vad är en int?

Alan123 278 – Fd. Medlem
Postad: 14 aug 2017 19:56

Aha så om talet är större än vad gränsen är så kan det bli problematiskt..

Men är det svaret då?

Stokastisk 3597 – Fd. Medlem
Postad: 14 aug 2017 20:05

Ja, det kallas att man får overflow.

Alan123 278 – Fd. Medlem
Postad: 14 aug 2017 20:10

Tack så mycket! :D

Svara
Close