http://ideone.com/hANuZ如何在使用C或C++時防止整數溢出?
#include <stdio.h>
int main(int argc, char *argv[]) {
/**
* Prints out powers of 2 for 32 iterations.
*/
int iterations = 0;
int value = 1;
while (iterations <= 32) {
// Prints in this format: iterations 2^n value
printf("%d\t2^%d\t%d", iterations, iterations, value);
switch (iterations) {
case 8:
case 16:
case 32:
printf("\t\t%d bit\n", iterations);
break;
default:
printf("\n");
break;
}
value *= 2;
++iterations;
}
return 0;
}
當我編譯和運行這個代碼段,當我打印「值」之後它大於2^30,甚至當我聲明它作爲一個無符號長怪異的東西發生。
我該怎麼辦?我只是一個初學者。 :-(
實際上,這種運行33次迭代 –
也許是因爲我使用++迭代? – Sweetgirl17
hmm .... 0-32 = 33。初始化爲0並循環,直到它<= 32,因此它在循環中傳遞33次 –