前提・実現したいこと
ここに質問の内容を詳しく書いてください。
2進数を10進数に変換する問題で、2進数の桁数を無制限にしたいです。
しかし、10桁までは処理されますが、11桁以降が処理されません。
オーバーフローとなってしまいます。
発生している問題・エラーメッセージ
エラーコード6:オーバーフロー
該当のソースコード
VBA
1Sub test() 2 3 Dim data() As String 4 Dim sum As Long 5 Dim k As Integer 6 Dim i As Integer 7 Dim j As Integer 8 Dim num As String 9 Dim m As Integer 10 11 12 '数を入力 13 num = InputBox("2進数を入力してください ") 14 15 '入力された数の長さを取得 16 m = Len(num) 17 18 '取得した長さの配列を定義 19 ReDim data(m) 20 21 '配列に入力された数を格納 22 k = m - 1 23 24 Do While k >= 0 25 26 data(k) = num Mod 10 'デバッグするとここになります 27 num = num \ 10 28 29 k = k - 1 30 31 Loop 32 33 i = 0 34 j = m - 1 35 36 '10進数に変換 37 Do While i < m 38 39 sum = sum + data(i) * (2 ^ j) 40 i = i + 1 41 j = j - 1 42 43 Loop 44 45 MsgBox "10進数は" & sum & "です。" 46 47 48End Sub
試したこと
型の変更など
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。