[算表] VBA 次方運算溢位

看板Office作者 (lightning990)時間1年前 (2022/09/15 16:03), 編輯推噓4(4018)
留言22則, 2人參與, 1年前最新討論串1/1
軟體: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

09/16 20:20, 1年前 , 1F
弱弱的回 and 單獨使用的概念我不清楚
09/16 20:20, 1F

09/16 20:21, 1年前 , 2F
不過若只測試 Debug.Print 2 ^ 35 - 1 並不會溢位
09/16 20:21, 2F

09/16 20:40, 1年前 , 3F
感謝回覆,因為需要搭配and 做次方的檢查,所以無法
09/16 20:40, 3F

09/16 20:40, 1年前 , 4F
單獨使用
09/16 20:40, 4F

09/16 20:45, 1年前 , 5F
抱歉 2進位運算 我不是很熟 煩請高手
09/16 20:45, 5F

09/16 20:48, 1年前 , 6F
另外 我懷疑 要創陣列表 跑迴圈
09/16 20:48, 6F

09/16 20:53, 1年前 , 7F
設定為long看看
09/16 20:53, 7F

09/16 20:57, 1年前 , 8F

09/16 20:58, 1年前 , 9F
對岸的 有查到>31 可能要改用文字記錄
09/16 20:58, 9F

09/16 21:17, 1年前 , 10F
我晚點寫出來 大概就是用陣列紀錄
09/16 21:17, 10F

09/16 21:18, 1年前 , 11F
主軸是用陣列紀錄0跟1 將2^35 與 2 ^ 1 兩組都列出來
09/16 21:18, 11F

09/16 21:18, 1年前 , 12F
然後用第一組陣列修改 若發現第二組陣列或第一組陣列
09/16 21:18, 12F

09/16 21:19, 1年前 , 13F
有1 那麼第一組陣列就變成1 (2進位and邏輯)
09/16 21:19, 13F

09/16 21:19, 1年前 , 14F
然後最後把 第一組陣列 用迴圈 step-1 把字串一個一個
09/16 21:19, 14F

09/16 21:21, 1年前 , 15F
從屁股把字一個一個提出來 用&併起來
09/16 21:21, 15F

09/16 21:21, 1年前 , 16F
轉成陣列的寫法 可以參考那個網址的輾轉相除法
09/16 21:21, 16F

09/16 21:21, 1年前 , 17F
但不要用遞迴 直接用陣列解決
09/16 21:21, 17F

09/16 21:22, 1年前 , 18F
補充一下
09/16 21:22, 18F

09/16 21:23, 1年前 , 19F
第二組陣列與第一組陣列也是用迴圈逐列倆倆比對有沒有1
09/16 21:23, 19F

09/16 22:58, 1年前 , 20F
感謝大大的回覆,我試了一下,目前看起來只要超過33
09/16 22:58, 20F

09/16 22:58, 1年前 , 21F
次方就會溢位,我試著把資料限縮在30次方以內,謝謝
09/16 22:58, 21F

09/16 22:58, 1年前 , 22F
09/16 22:58, 22F
文章代碼(AID): #1Z8jngjQ (Office)
文章代碼(AID): #1Z8jngjQ (Office)