第17講 n進数を10進数に翻訳するマクロ

第1話 n進数を10進数に翻訳するには?

翻訳するには、まずn進数の構造を考える必要があります。
n進数の仕組みを考えるために、
改めて10進数の仕組みを考えてみましょう。
10進数とは、10ごとに位が上がる数です。
ですから、例えば7542なら
7452=7×1000+4×100+5×10+2
です。
皆さん、
1000=10×10×10×10=10の3乗
100 =10×10×10    =10の2乗
10                 =10の1乗
ですから、
1                  =10の0乗
と考えることがお分かりでしょうか。
(一般にnの0乗は1と定義します。)
この考えを認めると、
7452=7×10の3乗+4×10の2乗+5×10の1乗+2×10の0乗
と位を統一的に理解できます。
(0乗に?を思い浮かべている方でも、
7452=7×10の3乗+4×10の2乗+5×10+2
は認めていただけますね。)

2進数の101101は、実は次のようになっています。
101101=1×2の5乗+0×2の4乗+1×2の3乗+1×2の2乗+0×2の1乗+1×2の0乗です。
ですから、n進数の4312なら、
4312=4×nの3乗+3×nの2乗+1×nの1乗+2×nの0乗
です。
1=nの0乗という考え方に違和感を覚える方もいらっしゃるでしょうし、
実際の運用のことを考えれば
4312=4×nの3乗+3×nの2乗+1×n+2
で十分です。

n進数の4312を4312(n)と表現することにします。
ですから、
4312(5)=4×5の3乗+3×5の2乗+1×5+2
       =4×125+3×25+1×5+2
       =500+75+5+2
       =582    (但し、右辺は10進数)
です。
尚、abcd(n)とき、
a<n、b<n,c<n、d<n
です。例えば、5進数なら
1(5)=1(10)
2(5)=2(10)
3(5)=3(10)
4(5)=4(10)
10(5)=5(10)
ですよね。5ごとに位が上がるのですから
ですから5進数の場合位の数字の最大の数は4です。


練習してみましょう。
110011(2)
12022102(3)
634251(7)
AFD542C(16)
(ただし、A=10,B=11,C=12,D=13,E=14,F=15です。
これは実際に16進数表示で使われているものです。)


第16講第7話へ 第2話へ
004

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