本週除了繼續之前作業, 請 弄清楚 Overflow (溢位) 以及 Underflow (虧失) 整數 Oveflow, 實數 Overflow? 絕對值太大以致於放不下就是 Overflow //try this: int a, b, i; a = 32765; b = -32765; for(i=1; i<=9; ++i) { printf(" a= %hd, b= %hd\n", a, b); a++; b--; } 0111111111111111 = 32767 + 1 ------------------------------ 1000000000000000 = -32768 Underflow (虧失) 絕對值太小小到幾乎是 0 以致於被電腦當作 0: 整數不會 Underflow, 因為 1 再小就變 0 實數才會: // try this: float a, b; int i; a = 1.0, b= 1.0; for(i=1; i<=120; ++i) { a = a/2; b = b / 2; } for(i=1; i<= 52; ++i) { a = a/2; b = b / 2; printf("a=%.8f, b=%.8f", a, b); }