8 svar
146 visningar
Alan123 är nöjd med hjälpen
Alan123 325
Postad: 14 aug 2017 Redigerad: 14 aug 2017

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 2974
Postad: 14 aug 2017

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

Ingemar 562
Postad: 14 aug 2017

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

Stokastisk 3613
Postad: 14 aug 2017

Testa följande kod

a = 1 << 16;

b = 1 << 16;

c = a * b;

Vad kommer c vara nu?

Alan123 325
Postad: 14 aug 2017

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 2974
Postad: 14 aug 2017

c skall också vara en int.

Vad är en int?

Alan123 325
Postad: 14 aug 2017

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

Men är det svaret då?

Stokastisk 3613
Postad: 14 aug 2017

Ja, det kallas att man får overflow.

Alan123 325
Postad: 14 aug 2017

Tack så mycket! :D

Svara Avbryt
Close