第28講 n進数演算−−−加法その2
第7話 n進法足し算プログラム解説その6
プログラム主要部分再掲
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=5のとき、

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(5) = c(5) + d(5) + e(5)
       = + +
       = 7
    c(5 + 1) = c(5 + 1) + Int(c(5) / 7)
          = c(6) + Int(7 / 7)
          = 0 + 1
          = 1
すなわち、
       c(6) = 1

    c(5) = c(5) Mod 7
       = 7 Mod 7
       = 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

117649(7の5乗)の位が0になり、7の6乗の位にへの繰り上がりはです。


i=6のとき、

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(6) = c(6) + d(6) + e(6)
       = + +
       = 10
    c(6 + 1) = c(6 + 1) + Int(c(6) / 7)
          = c(7) + Int(10 / 7)
          = 0 + 1
          = 1
すなわち、
       c(7) = 1

    c(6) = c(6) Mod 7
       = 10 Mod 7
       = 3

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

7の6乗の位が3になり、7の7乗の位にへの繰り上がりはです。



第6話へ 第8話へ

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++ 入門 基礎から応用まで
本サイトトップへ