第17講 10進法をn進法に変換する

第2話 10進数をn進数に翻訳するには?
実は、簡単な方法があります。
例えば、13を2進数に翻訳するには、
13÷2=6・・・1
6÷2 =3・・・0
3÷2 =1・・・1
1÷2 =0・・・1
を商が0になるまで繰り返して2で割り、
余りを逆順に並べた1101が答えになります。
つまり、13(10)=1101(2)です。

4876を例にすると、
4876÷2=2438・・・0
2438÷2=1219・・・0
1219÷2= 609・・・1
609÷2 = 304・・・1
304÷2 = 152・・・0
152÷2 =  76・・・0
76÷2  =  38・・・0
38÷2  =  19・・・0
19÷2  =   9・・・1
9÷2   =   4・・・1
4÷2   =   2・・・0
2÷2   =   1・・・0
1÷2   =   0・・・1
ですから
4876(10)=1001100001100(2)
です。
4876を5進数に直すには、
4786÷5=957・・・1
977÷5 =195・・・2
195÷5 = 39・・・0
39÷5  =  7・・・4
7÷5   =  1・・・2
2÷5   =  0・・・2
から
4876(10)=224021(5)
です。


数が大きくなると大変ですから、
4876(10)=1001100001100(2)
の場合、表記は次のようにします。
k
では、みなさんプログラミングに挑戦しましょう。
もちろん、同様なことの繰り返しですから、
関数の再帰的使用が適しているでしょう。
では、皆さん10進数の10万未満の整数をランダムに発生させて、
それをn進数に翻訳するプログラムを組んで下さい。
実行画面
n=2
10進数の163を2進数に翻訳すると、
10100011
です。
翻訳にかかった時間は0.000000秒です。
プロジェクト終了

n進数のnの値はキーボードから取得して下さい。
取得の仕方を忘れた方は、
第3講第9話
を参照して下さい。


条件とヒントを書いておきます。
条件
@ データは社長mainが自ら作るのではなく、int型社員fに作成させる。
A 作成データは、4桁以内とする。
B 10進数からn進数へ翻訳はvoid型社員gに行わさせる。
C 表示は、表示係社員hに行わせる。
D 実行にかかった時間を計測する。
(以降、すべてのプログラムについてDは入れることにします。
今回のように0.000000秒であっても)

ヒント
最初の数行を入れておきます。
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int f(); //データを発生させる社員
void g(
int w,int a[1000],int n, int i); //10進数をn進数に翻訳する社員
void h(
int w,int a[1000],int n); //結果をコンソールに表示する社員
int main(){
       ・
ユークリッド互除法を思い出して下さい。
いつもなら、
void g(int w,int a[1000],int n, int
g); //10進数をn進数に翻訳する社員
とするところをiとしているのは、
社員名(関数名)とかぶってしまうからです。
gは、私がBASICでプログラムを始めた頃から、
再帰的に使うときに引数としてきたものです。
再帰的使用がヒントです。
魔方陣をコンピュータに作らせるという人から見てどうでもよい、
ことにこだわっている内に、
BASIC、パスカル、C言語、C++、Java、VB、VBA、Ruby
の各言語を習得し、
「VC++ 入門」「VB 入門」「vba 2016 入門」などで、
Googleランキングダントツのトップとなって、
平日なら、1日で少ない日で4千、
多い日には2万近くアクセス数を稼ぐようになり、
2つの大手出版社から、
一般書籍の執筆依頼を受け、
さらには、私の論文が大学の輪読の題材に採用されるなど、
私に大きなメリットをもたらしました。
皆さん、
「こんなことやってどうなるの?」という発想を、
もっては絶対にダメですよ。
何度か申し上げた通り、
こういう人はAI時代に間違いなくリストラ(首切り)される人です。
AI時代には要らない人材なのです。
知ること自体に喜びを感じられる人のみが、
AI時代には生き残れるのです。
前にも、一度紹介しましたし、
メニューのページ(index.htm)に書いてあってしつこいようですが、
小学生・中学生・高校生の皆さんは、
是非ともAI時代の生き方・学び方(離任挨拶から)
を熟読してください。
読むことによって、時代の勝利者になって幸せな人生をつかんでください。
AI時代についての警鐘を鳴らす論文は、
この後もたくさん書いていく予定です。


第1話へ 第3話へ

a


初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ