程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 十進制整數轉換為二進制C++實現

十進制整數轉換為二進制C++實現

編輯:關於C語言
 

二進制是計算技術中廣泛采用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統。

生活中其實很多地方的計數方法都多少有點不同進制的影子。 比如我們最常用的10進制,其實起源於人有10個指頭。如果我們的祖先始終沒有擺脫手腳不分的境況,我想我們現在一定是在使用20進制。還有七進制,比如星期。十六進制,比如小時或“一打”,六十進制,比如分鐘或角度……

 

現在我們先主要考慮十進制數如何轉換為二進制數。只要熟悉了2進制的轉換,其他的任意進制都容易了! 

例如十進制數字11轉換成二進制為1011,它是如何做的呢? 

11/2=5……1 

5/2=2……1 

2/2=1……0 

1/2=0……1

將上面的余數,從下至上排序即可得到(1011)b.

#include<iostream>

using namespace std;

void d2b(int var,int *p){ //定義函數

int i=31,j=0, tmp; //定義函數中需要用到的變量 tmp用於交換,其他為下標

while(var>0){//當var大於0時對var求余,並除以2賦給var

p[i]=var%2;//第一個余數存貯於p[31](數組最後一位)

var=var/2;

i--;

}

i++;

//*將獲得值的起始位置遷移至p[0]

for(;i<32;j++){

tmp=p[j];

p[j]=p[i];

p[i]=tmp;

i++;

 

}

p[j]=-1;//將數值結尾後面設置為-1

 

 

}

int main(){

int var=222;

int p[32];

d2b(var,p);

for(int i=0;p[i]>=0;i++){ //順序輸出數組p,遇到-1終止

cout<<p[i];

}

}


因為c++的整數在內存中占4個字節,而上面的程序只是對正整數做處理,故p的數組長度32剛好夠用。下面是執行結果
十進制整數轉換為二進制C++實現.png

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved