std::setbase的cppreference页面如下所述:
除了8、10或16进制以外的基数值会将 basefield 重置为零,这对应于十进制输出和前缀相关的输入。
为什么呢?
只支持这些基数有特殊原因吗?似乎至少能够支持到16(实际上是36:0-9,然后是a-z)而不需要做任何困难的选择。具体而言,2是一种常见的基数,我认为应该有人对std::setbase(2)
(以及相应的std::binary
)感兴趣。
我当然可以自己打印二进制位,但我的ostream来做这件事会更好。