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

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

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

2020-01-26 14:26:02
字體:
供稿:網(wǎng)友

看《編程之美》第二節(jié)的時候,它是定義的一個整型,然后取位。但是他的那個或運算符號好像寫錯了,寫成了異或符號“^”,應該是“|”。我就突然對二進制的輸出感興趣了。想知道怎樣輸出二進制。我們知道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)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌兰察布市| 上高县| 稻城县| 威海市| 黎川县| 衡东县| 迭部县| 两当县| 吴堡县| 南川市| 象州县| 菏泽市| 二连浩特市| 外汇| 安陆市| 石门县| 马鞍山市| 土默特左旗| 贡山| 老河口市| 侯马市| 惠州市| 丰台区| 萍乡市| 屯昌县| 金塔县| 铁岭县| 安庆市| 沈丘县| 香格里拉县| 临桂县| 云安县| 甘孜县| 怀集县| 屏山县| 全州县| 万全县| 修文县| 大石桥市| 梅州市| 鄂温|