cout的二進制輸出


今天,看到一個帖子,是用cout進行二進制輸出的問題,示例代碼如下:

 

 

大家可以看出什么問題嗎?cout並么有bin成員,所以以上代碼是編譯不過的!如果要輸出二進制應該怎么辦呢?

其實,cout並不支持輸出二進制,只支持八、十、十六進制三種方式,那該怎么辦呢?大家是否會想起標准庫中的bitset類!

對了,就是用bitset來實現二進制的輸出!

 

輸出結果:

00000000000000000000000000001100
14
c
請按任意鍵繼續. . .

哦,yes,完全正確!如果你要深究bitset是咋實現的,可以參考下面的代碼(去除了一些冗余代碼):

構造函數:

 

 轉字串函數:

輸出操作符重載函數:

這回你是否明白了呢?bitset類中

typedef unsigned long _Ty; // base type for a storage word

_Ty _Array[_Words + 1]; // the set of bits

說明所有的數據都是用unsigned long類型數組_Array存儲的,在輸出時,根據位運算轉換成string,然后再輸出!

O(∩_∩)O~,有些時候看看源碼也沒壞處!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com