推 nowar100:其實我看不太懂這比較的意義 兩個數字都溢位了幹嗎比 XD 09/27 09:13
→ nowar100:何況要比溢位的話也不可能單憑一個大於就比出來了 @@" 09/27 09:14
→ hirabbitt:咦 直接打3000000000也會溢位嗎? 09/27 09:19
→ james732:覺得你對溢位好像有什麼誤解 XD 09/27 09:22
推 purpose:有號數,正數只到2^31-1 09/27 09:25
→ tinlans:你需要學習一下常數的語法。 09/27 09:41
→ tinlans:常數後面是可以加上一些尾綴英文字表示型態的。 09/27 09:42
→ hirabbitt:我在3000000000後面加l也沒有變化啊 09/27 09:57
→ tinlans:....樓上,你是 64-bit 平台嗎? 09/27 10:15
→ tinlans:你最好查一下你的平台和編譯環境 long 有多大。 09/27 10:16
→ tinlans:不過我真的很好奇,你的編譯器都沒有給你任何警告嗎? 09/27 10:19
推 chchwy:long也放不下的3000000000 要用long long 09/27 10:23
推 purpose:微軟的VC,在cin >> a 那邊,如果你值太大,他就會取消 09/27 10:27
→ purpose:所以你cin的動作等於沒有作,a還是原來的a值 09/27 10:28
→ tinlans:不合格式不管什麼平台都會讓 stream 掉進 fail 狀態吧。 09/27 10:47
→ hirabbitt:t大 沒有警告耶XD 還有我用(double)3000000000也是一樣 09/27 11:26
→ hirabbitt:我想搞不好是p大說的那樣XD 09/27 11:26
→ tinlans:comparison is always false due to limited range of 09/27 11:31
→ tinlans:data type 09/27 11:31
→ tinlans:我家的 g++ 會有這警告,針對 if (a > 3000000000) 這行。 09/27 11:31
→ tinlans:新版的 GCC 印象中要下 -Wextra 才會跳,-Wall 不會有。 09/27 11:32