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~,有些时候看看源码也没坏处!

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值