第28講 n進数演算−−−加法その2
第5話 n進法足し算プログラム解説その4
プログラム主要部分再掲
Sub ts(a() As Integer, b() As Integer, c() As Integer)
  Dim i As Integer, j As Integer
  Dim d(14) As Integer, e(14) As Integer
  Call sy(d())
  Call sy(e())
  Dim asz As Integer, bsz As Integer
  asz = cp(d(), a()) '終わり記号nをなくし、サイズを取得
  bsz = cp(e(), b()) '終わり記号nをなくし、サイズを取得
  Dim max As Integer
  max = asz
  If bsz > max Then max = bsz
  For i = 0 To max
    c(i) = c(i) + d(i) + e(i)
    c(i + 1) = c(i + 1) + Int(c(i) / n)
    c(i) = c(i) Mod n
  Next
  If c(max + 1) > 0 Then c(max + 2) = n Else c(max + 1) = n
End Sub

i=0のときは、

13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0

となりました。
以降も順調にいくのでしょうか。

i=1のとき、

13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0

    c(1) = c(1) + d(1) + e(1)
       = + +
       = 9
    c(1 + 1) = c(1 + 1) + Int(c(1) / 7)
          = c(2) + Int(9 / 7)
          = 0 + 1
          = 1
すなわち、
       c(2) = 1

    c(1) = c(1) Mod 7
       = 9 Mod 7
       = 2

13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0

49の位が2になり、343(7の3乗)の位に繰り上がりここでも順調です。

i=2のとき、

13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0

    c(2) = c(2) + d(2) + e(2)
       = + +
       = 9
    c(2 + 1) = c(2 + 1) + Int(c(2) / 7)
          = c(3) + Int(9 / 7)
          = 0 + 1
          = 1
すなわち、
       c(3) = 1

    c(2) = c(2) Mod 7
       = 9 Mod 7
       = 2

13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0
13 12 11 10 9 8 7 6 5 4  3 2 1 0

343(7の3乗)の位が2になり、2401(7の4乗)の位に繰り上がりここでも順調です。



第4話へ 第6話へ

004

eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
Visual C++ によるC言語 入門 C++ 入門 基礎から応用まで
本サイトトップへ