如何把十進位數字轉換成二進位?

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

原理剖析

我們可以把計算過程寫成算式:(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:"<0);
    return 0;
}

在〈如何把十進位數字轉換成二進位?〉中有 22 則留言

  1. 不好意思..你解釋得很好!
    我懂妳意思了..謝謝..
    我高二..我最近突然對這類東西好感興趣..
    但我想問..算出來那數字要幹嘛~~~

  2. 會有乘不完的現象呀,試算十進位的15.38 轉換成二進位,請問如何乘得完呢?

  3. 我是老師要考試所以才找資料的,
    謝謝啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  4. C++的code除了一些多餘的符號讓語法出錯外,
    cout<<!(y % 2)<<endl; 的邏輯是不是有誤啊?
    為什麼要加上!作inverse勒?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料