第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)
の場合、表記は次のようにします。
では、みなさんプログラミングに挑戦しましょう。
もちろん、同様なことの繰り返しですから、
関数の再帰的使用が適しているでしょう。
では、皆さん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時代についての警鐘を鳴らす論文は、
この後もたくさん書いていく予定です。
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ