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