この記事を書き終えたら、また「簡単すぎる」と言う人が出てくるでしょうね…… さて本題に入ります。今週、プログラミングの授業で先生からクラス全員に出された課題は、10進数を2進数に変換する方法でした。数学的に計算するなら難しくありません。割り算の余りを取っていく短除法を使えばいいだけです。

原理の解説

計算の過程を式で書くと次のようになります。(10 を 10進数から 2進数に変換する場合)

10/2=5...0

5/2=2...1

2/2=1...0

1/2=0...1

したがって、10 の 2進数は 1010 になります。

この式に従えば、do...loop の繰り返し処理を書けます。商が 0 以下になったらループを終了します。また、割り算のたびに余りと商を記録し、商を次の割り算に使います。最後に余りを「下から上へ」出力すれば答えになります。言葉だけでは少し分かりにくいかもしれないので、コードを見てみてください~

VB のコード:

VBScript ファイルのダウンロード: Box.net|4Shared|Dropbox|Google

msgbox("此程式可幫你把十進位轉成二進位")
x=inputbox("請輸入一個數字")	'変換する数値を取得
a=x
do while(a>0)	'a>0 の間、割り算を実行
	q=a mod 2 & q  	'余りを取得。ここでのポイントは下から上へ出力すること
	a=a2		'次の割り算のために整数部分を取得
loop
msgbox(q)		'結果を出力

C++ のコード:

コードのダウンロード:Box.net|4Shared|Dropbox|Google

#include 
#include 

using namespace std;

int main() { int x,y,; cout«“Please input one number:”; cin»x; cout«“result:"«endl; y=x; do{ cout«!(y % 2)«endl; y=(int)y/2; }while(y>0); return 0; }