看板 Office 關於我們 聯絡資訊
軟體:EXCEL 版本:2019 各位神人好,小弟使用以下運算式運算時,當次方過大時會產生溢位的錯誤 範例 Msgbox 2 ^ 35 - 1 And 2 ^ 1 =>溢位 Msgbox 2 ^ 20 - 1 And 2 ^ 1 =>2 以上是為了做排列組合所做的判斷式 小弟有嘗試把所有的變數和結果都設定為Double ,但是還是不行 麻煩各位大大幫小弟看一下如何才能避免溢位,十分感謝。 ----- Sent from JPTT on my Samsung SM-G975F. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.175.204 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1663229034.A.B5A.html
waiter337: 弱弱的回 and 單獨使用的概念我不清楚 09/16 20:20
waiter337: 不過若只測試 Debug.Print 2 ^ 35 - 1 並不會溢位 09/16 20:21
lightning990: 感謝回覆,因為需要搭配and 做次方的檢查,所以無法 09/16 20:40
lightning990: 單獨使用 09/16 20:40
waiter337: 抱歉 2進位運算 我不是很熟 煩請高手 09/16 20:45
waiter337: 另外 我懷疑 要創陣列表 跑迴圈 09/16 20:48
waiter337: 設定為long看看 09/16 20:53
waiter337: 對岸的 有查到>31 可能要改用文字記錄 09/16 20:58
waiter337: 我晚點寫出來 大概就是用陣列紀錄 09/16 21:17
waiter337: 主軸是用陣列紀錄0跟1 將2^35 與 2 ^ 1 兩組都列出來 09/16 21:18
waiter337: 然後用第一組陣列修改 若發現第二組陣列或第一組陣列 09/16 21:18
waiter337: 有1 那麼第一組陣列就變成1 (2進位and邏輯) 09/16 21:19
waiter337: 然後最後把 第一組陣列 用迴圈 step-1 把字串一個一個 09/16 21:19
waiter337: 從屁股把字一個一個提出來 用&併起來 09/16 21:21
waiter337: 轉成陣列的寫法 可以參考那個網址的輾轉相除法 09/16 21:21
waiter337: 但不要用遞迴 直接用陣列解決 09/16 21:21
waiter337: 補充一下 09/16 21:22
waiter337: 第二組陣列與第一組陣列也是用迴圈逐列倆倆比對有沒有1 09/16 21:23
lightning990: 感謝大大的回覆,我試了一下,目前看起來只要超過33 09/16 22:58
lightning990: 次方就會溢位,我試著把資料限縮在30次方以內,謝謝 09/16 22:58
lightning990: 你 09/16 22:58
waiter337: 後來想想 也不一定要陣列 09/20 17:13
waiter337: 只要你改成文字 1010逐個比對 然後照邏輯 看是多少 09/20 17:14
waiter337: 也應該能得出 09/20 17:14