我估計寫完這文章之後又有人要說我寫的文章太簡單了… 廢話不多說,這週程式課我們老師給我們班出了一道題目,內容就是要如何把十進位轉換成二進位,如果是用數學來算的話其實不難,用短除法去算,然後取餘數就可以了
原理剖析
我們可以把計算過程寫成算式:(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:"<0);
return 0;
}
謝謝你的程式^________^
對我幫助很大!!!!!!!
不客氣XDD
不過你還沒交作業阿@@
為甚麼看完還是不知道二進位是啥= =
請維基百科吧~
我是知道二進位這個東東 只是為什麼換算不太懂= = 八進位跟十六進位就懂說
原理一樣阿@@
bitset 好用= =+
嗯阿~
可是用bitset就失去樂趣了XD
工程計算機直接拿出來!Di Di Di Di Di …
XD
禁用大招!
那如果十進位轉二進位乘不完,在電腦中怎麼解決?
不會有乘不完的問題阿@@
可以舉例嘛?
測試255 手動算是11111111 為什麼用你的程式是00000000
謝謝你的幫助:)
別客氣
不好意思..你解釋得很好!
我懂妳意思了..謝謝..
我高二..我最近突然對這類東西好感興趣..
但我想問..算出來那數字要幹嘛~~~
這是 電腦用的
電腦是 0(沒通電) 1(有通電) 的世界
會有乘不完的現象呀,試算十進位的15.38 轉換成二進位,請問如何乘得完呢?
c++的程式碼 我複製到編譯器上
編譯錯誤..
int x,y;
他多key一個逗號
我是老師要考試所以才找資料的,
謝謝啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
C++的code除了一些多餘的符號讓語法出錯外,
cout<<!(y % 2)<<endl; 的邏輯是不是有誤啊?
為什麼要加上!作inverse勒?