注册 登录
编程论坛 C++教室

关于 c++ 的 bitset 求解释

七夜之华 发布于 2014-09-21 22:49, 442 次点击
编译结果为7 和 9,  请高手解释   不太理解

#include<iostream>
#include<bitset>
using namespace std;
void main()
{
bitset<4> bit(1111);
cout<<bit.to_ulong()<<endl;
bitset<4> ait(1001);
cout<<ait.to_ulong()<<endl;

}

那对于以下的代码呢  编译结果为9  如何解释呢

#include<iostream>
#include<bitset>
using namespace std;
void main()
{
 bitset<5> a(00111);
 cout<<a.to_ulong();
}
3 回复
#2
zcdjt2014-09-21 22:55
C++语言的一个类库,用来方便地管理一系列的bit位而不用程序员自己来写代码。
bitset除了可以访问指定下标的bit位以外,还可以把它们作为一个整数来进行某些统计。
可以如下声明一个该类型变量:
bitset<N>
其中varm为变量名。
N表示该类型在内存中占的位数,是二进制。
#3
rjsp2014-09-22 08:35
1111 这个进制数以进制表示就是 0000010001010111,只取后面4bits就是 0111,换成十进制就是 7
1001 这个十进制数以二进制表示就是 0000001111101001,只取后面4bits就是 1001,换成十进制就是 9
00111这个进制数以二进制表示就是 0000000001001001,只取后面5bits就是01001,换成十进制就是 9

我猜,你想要的是 bitset<4> bit("1111"); 下次别粗心大意
#4
七夜之华2014-09-22 13:25
嗨嗨,解释的很清楚呢,谢谢,我会继续努力的。。。。
1