我估計寫完這文章之後又有人要說我寫的文章太簡單了... 廢話不多說,這週程式課我們老師給我們班出了一道題目,內容就是要如何把十進位轉換成二進位,如果是用數學來算的話其實不難,用短除法去算,然後取餘數就可以了

原理剖析

我們可以把計算過程寫成算式:(10的十進位轉成2進位)

10/2=5...0

5/2=2...1

2/2=1...0

1/2=0...1

所以10的二進位就是1010

照者這個算式來看,我們可以寫一個do...loop迴圈,當商數等於或小於0的時候,代表迴圈要結束,另外要記錄每次做除法的餘數跟商數,用商數做下一次的除法運算,最後把餘數「從下往上」輸出就是答案了,這樣講可能有點難懂,請看Code~

VB程式碼:

VBScript檔下載: Box.net4SharedDropboxGoogle

msgbox("此程式可幫你把十進位轉成二進位")
x=inputbox("請輸入一個數字")	'取得要轉換的數字
a=x
do while(a>0)	'當a>0的時候執行除法
	q=a mod 2 & q  	'取得餘數,這行的關鍵是在於由下往上列印
	a=a2		'取得整數部分,以進行下一次除法運算
loop
msgbox(q)		'輸出結果

C++程式碼:

程式碼載點: Box.net4SharedDropboxGoogle

#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; }