Aşağıdaki C++ kodunda, 32767 + 1 = -32768.Tam sayı taşması nasıl önlenir?
#include <iostream>
int main(){
short var = 32767;
var++;
std::cout << var;
std::cin.get();
}
sadece 32767 olarak "var" ayrılmak için herhangi bir yolu hatasız var mı?
Burada neler oluyor? Bir tamsayı (kısa) için tavana çarptıysanız, bir tane daha ekleyerek işaretleri tamsayı için maksimum negatif miktarına çevirir. – blu
Tam sayıların otomatik olarak etrafından dolanmadığı farklı bir mod istiyorsanız, bu sorun olmaz. – dmazzoni
Bu bana neden uyuyamadığımı hatırlatıyor (http://xkcd.com/571/). :-) –