国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中幾種將整數(shù)轉(zhuǎn)換成二進制輸出的方法總結(jié)

2020-05-23 14:00:24
字體:
供稿:網(wǎng)友

看《編程之美》第二節(jié)的時候,它是定義的一個整型,然后取位。但是他的那個或運算符號好像寫錯了,寫成了異或符號“^”,應(yīng)該是“|”。我就突然對二進制的輸出感興趣了。想知道怎樣輸出二進制。我們知道C++輸出十六進制是cout〈〈hex〈〈 a;而八進制是cout〈〈 ocx〈〈 a;二進制則沒有默認的輸出格式,需要自己寫函數(shù)進行轉(zhuǎn)換,于是上網(wǎng)搜索了一下。網(wǎng)上思路真是廣泛啊。

下面列出一些方法。 

#include 〈iostream〉 #include 〈list〉 #include 〈bitset〉 using namespace std; //遞歸輸出二進制函數(shù) void BinaryRecursion(int n) {  int a;  a=n%2;  n=n〉〉1;  if (n==0)  ;  else  BinaryRecursion(n);  cout〈〈a; } //使用容器轉(zhuǎn)換二進制 void BinaryVector(int n) {  int temp;  temp=n;  list〈int〉 L;  while(temp!=0)  {  L.push_front(temp%2);  temp=temp〉〉1;  }  for (list〈int〉::iterator iter=L.begin();iter!=L.end();iter++ )  cout〈〈*iter;  cout〈〈endl; } //一般方法,32位,逐步與1做與運算。 void Binarycout(int n) {  for (int i=31;i〉=0;i--)  {  cout〈〈((n〉〉i)&1);  }  cout〈〈endl; } //使用bitset轉(zhuǎn)換二進制 void BinaryBitset(int n) {  cout〈〈bitset〈sizeof(int)*8〉(n)〈〈endl; } int main() {  int a=1045,b=2;  int c;  c=a+b;  cout〈〈"BinaryRecursion(c):";  BinaryRecursion(c);  cout〈 BinaryVector(c);  cout〈〈"Binarycout(c):";  Binarycout(c);  cout〈〈"BinaryBitset(c):";  BinaryBitset(c);  cout〈〈"BinaryChar(c):";  BinaryChar(c);  //cout〈 return 0; } 

運行后的結(jié)果如下:

BinaryRecursion(c):10000010111 BinaryVector(c):10000010111 Binarycout(c):00000000000000000000010000010111 BinaryBitset(c):00000000000000000000010000010111 BinaryChar(c):10000010111 Press any key to continue

從中可以看出,有兩種運算會得出32位的結(jié)果,不太好。我對C++還不是很精通,所以這個效率還不是很清楚哪個個好。 

我覺得用容器的可能會好些吧。如果是C,就用字符轉(zhuǎn)換函數(shù),或者直接除后和1做與運算。

以上這篇C++中幾種將整數(shù)轉(zhuǎn)換成二進制輸出的方法總結(jié)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網(wǎng)。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黎平县| 石屏县| 万州区| 临城县| 棋牌| 曲沃县| 沅陵县| 嘉峪关市| 凌源市| 天门市| 磐安县| 景东| 老河口市| 武邑县| 谷城县| 南和县| 双牌县| 宁陕县| 肥西县| 河北区| 博兴县| 寿光市| 开鲁县| 阿拉善左旗| 莱州市| 平邑县| 武安市| 湛江市| 林芝县| 东乌| 宝清县| 赣州市| 开封市| 石泉县| 大姚县| 五河县| 天长市| 通道| 林甸县| 托克逊县| 小金县|