今天要來練習的是
十進制轉二進制的練習
程式碼:
#include <iostream>
using namespace std;
int main(){
int num,i, x[8], xc[8];
cout << "Please input a integer.\n";
cin >> num;
endl(cout);
i=0;
cout << num << " (10) = ";
while(num > 0){
for(int v=1; v<=7; v++){
x[0] = num%2;
xc[0] = num/2;
x[v] = xc[v-1]%2;
xc[v]= xc[v-1]/2;
}
num =num -255;
}
//輸出於命令提示字元
for(i= 7; i>=0 ; i--)
{
cout << x[i] ;
}
cout << " (2)";
return 0;
}
執行結果:
Please input a integer.
10
10 (10) = 00001010 (2)
--------------------------------
Process exited after 0.08787 seconds with return value 0
請按任意鍵繼續...
程式碼解釋:
◆宣告變數
int num:用來儲存cin讀取鍵盤的值
int xc[8]:用來來暫存計算的值
int x[8]:用來顯示十進制轉二進制的結果
◆while迴圈
使用while迴圈來計算十進制轉二進制的過程
判斷值是鍵盤輸入值>0就進入
十進制轉二進制其實就是
將十進制短除法後取餘數
舉例來說(用短除法除以整數10):
x[8]:存放「輸入的值除以2取得餘數」的二進制結果
xc[8]:存放「輸入的值除以2」的結果
◆for迴圈
最後再利用for迴圈
將x[]的值顯示在命令提示字元
注意這邊存放在陣列x[]的結果
是倒過來的(餘數是由上往下)
因為短除法算完後
取餘數是由下往上看結果
所以這邊顯示才要將陣列x[]的值
由最後的值先輸出
以上就練習到這邊啦~
-End-