国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 张掖市| 蛟河市| 阳高县| 凌源市| 五寨县| 肃宁县| 湖北省| 古浪县| 长泰县| 小金县| 吴江市| 永胜县| 景洪市| 邓州市| 永兴县| 乌审旗| 靖州| 瑞丽市| 梨树县| 汉沽区| 涪陵区| 兴国县| 开鲁县| 安达市| 泸水县| 玉树县| 鱼台县| 四平市| 克山县| 辽阳市| 隆回县| 全南县| 章丘市| 沐川县| 商河县| 册亨县| 宿迁市| 黄石市| 阆中市| 绥宁县| 商丘市|