[問題] int溢位判斷?

看板C_and_CPP作者 (他真的)時間10年前 (2015/09/12 18:05), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/1
如題。 如果我輸入一個int整數 我要如何判斷我輸入的整數有沒有溢位呢? 像是55555555555555明顯溢位但是電腦看起來卻是-2,147,483,648 至 2,147,483,647 那麼我該如何撰寫一個函式去判斷輸入的int整數是否溢位? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.149.154 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1442052329.A.827.html

09/12 18:23, , 1F
讀字串判斷完再轉整數
09/12 18:23, 1F

09/12 18:24, , 2F
忘了說輸入一定要是int而且變數只限定用int 不能用
09/12 18:24, 2F

09/12 18:24, , 3F
其他像是long int之類的
09/12 18:24, 3F

09/12 18:31, , 4F
寫個字串轉int的函式不就好了= =
09/12 18:31, 4F

09/12 19:08, , 5F
直接用 boost::lexical_cast<int>("55555555555555");
09/12 19:08, 5F

09/12 19:08, , 6F
如果有 overflow 的話會有 C++ exception 被拋出來
09/12 19:08, 6F

09/12 19:17, , 7F
如果你要問的是如何實作,那就要看你的輸入是從哪來的
09/12 19:17, 7F

09/12 19:19, , 8F
了解,感謝各位
09/12 19:19, 8F

09/12 19:20, , 9F
可考慮從 STDIN 每讀一個字元,就進行轉換跟溢位檢查
09/12 19:20, 9F

09/12 21:04, , 10F
輸入int變數,然後判斷這個int變數有沒有溢位?
09/12 21:04, 10F
文章代碼(AID): #1Ly_ZfWd (C_and_CPP)