int main() { //0开头是 8进制 10机制开头什么都不加 0x16进制 bitset<10> bs(0xffff); cout<<bs<<endl; cout<<"第一个数:"<<bs[0]<<endl; system("pause"); }
发信bitset 初始化时,如果是 unsigned long类型的话,会根据实际数是什么进制,来进行转换。 8进制数 是前面加个 0 ,10进制不用加,16进制是前面加0x。
本来加加二进制的,经查发现没有二进制的表示方法(这点不知是否有误),还好,bitset可以接受 string 类型的,可以算是变相的直接输入2进制了。
不管是unsigned long 还是 string 类型的参数,实际上输出的时候都是直接放到最后面,比如 string s="1101", bitset 10位,输出就是 0000001101
输出虽然是这样,但是取得时候是反得, [0] 取的是最后一位,以此类推,[9] 是第一位数。很奇怪,为啥要这样显示呢。