iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
自我挑戰組

腦力激盪C++系列 第 23

[Day-23] 小練習二進制轉十進制

  • 分享至 

  • xImage
  •  

今天要來練習的是
十進制轉二進制的練習
/images/emoticon/emoticon12.gif

程式碼:

#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):
https://ithelp.ithome.com.tw/upload/images/20210928/20141707VnTEiPedU4.png
x[8]:存放「輸入的值除以2取得餘數」的二進制結果
xc[8]:存放「輸入的值除以2」的結果

◆for迴圈
最後再利用for迴圈
將x[]的值顯示在命令提示字元
注意這邊存放在陣列x[]的結果
是倒過來的(餘數是由上往下)
因為短除法算完後
取餘數是由下往上看結果
所以這邊顯示才要將陣列x[]的值
由最後的值先輸出

以上就練習到這邊啦~
/images/emoticon/emoticon08.gif

-End-


上一篇
[Day-22] 呼叫自訂函式小練習
下一篇
[Day-24] 小練習十進制轉二進制
系列文
腦力激盪C++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言