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

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

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

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

i=4のとき、

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

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

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




第5話へ 第7話へ

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