看板 C_and_CPP 關於我們 聯絡資訊
如題。 如果我輸入一個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
azureblaze: 讀字串判斷完再轉整數 09/12 18:23
brian7882287: 忘了說輸入一定要是int而且變數只限定用int 不能用 09/12 18:24
brian7882287: 其他像是long int之類的 09/12 18:24
stupid0319: 寫個字串轉int的函式不就好了= = 09/12 18:31
LiloHuang: 直接用 boost::lexical_cast<int>("55555555555555"); 09/12 19:08
LiloHuang: 如果有 overflow 的話會有 C++ exception 被拋出來 09/12 19:08
LiloHuang: 如果你要問的是如何實作,那就要看你的輸入是從哪來的 09/12 19:17
brian7882287: 了解,感謝各位 09/12 19:19
LiloHuang: 可考慮從 STDIN 每讀一個字元,就進行轉換跟溢位檢查 09/12 19:20
stupid0319: 輸入int變數,然後判斷這個int變數有沒有溢位? 09/12 21:04