您的位置:首页 > 其它

STL_Bitset

2016-07-05 10:50 218 查看
1.构造

<span style="font-family:Microsoft YaHei;font-size:24px;">std::bitset<16> foo;//构造16位的无参默认为0的位图
std::bitset<16> bar(0xfa2);//转化为二进制形式
std::bitset<16> baz(std::string("0101111001"));

std::cout << "foo: " << foo << '\n';
std::cout << "bar: " << bar << '\n';
std::cout << "baz: " << baz << '\n';</span>




bitset::operator[]:

<span style="font-family:Microsoft YaHei;font-size:24px;">// bitset::operator[]
#include <iostream> // std::cout
#include <bitset> // std::bitset
int main()
{
std::bitset<4> foo;
foo[1] = 1; // 0010
foo[2] = foo[1]; // 0110
//operator[] 设置位图的具体位置的数字
std::cout << "foo: " << foo << '\n';
system("pause");
return 0;
}</span>

bitset::count() :计算已经被设置的个数(1的个数)
<span style="font-family:Microsoft YaHei;font-size:24px;">// bitset::count
#include <iostream> // std::cout
#include <string> // std::string
#include <bitset> // std::bitset
int main()
{
std::bitset<8> foo(std::string("10110011"));
std::cout << foo << " has ";
std::cout << foo.count() << " ones and ";
std::cout << (foo.size() - foo.count()) << " zeros.\n";
system("pause");
return 0;
}</span>bitset::size(): 求出bitset的大小
bitset::test(): 可以判断某一位是否为1,若为1,返回true,若为0,返回false

bitset::set():设置

<span style="font-family:Microsoft YaHei;font-size:24px;">// bitset::set
#include <iostream> // std::cout
#include <bitset> // std::bitset

int main()
{
std::bitset<4> foo;

std::cout << foo.set() << '\n'; //设置全为1
std::cout << foo.set(2, 0) << '\n'; //下标为2的设置为0
std::cout << foo.set(2) << '\n'; //设置下标2(从右开始数),默认为1
system("pause");
return 0;
}</span>


bitset::reset():设置为0

<span style="font-family:Microsoft YaHei;font-size:24px;">std::bitset<4> foo(std::string("1011"));
//reset():设置为0
std::cout << foo.reset(1) << '\n';//原来是1,设置后变为0
std::cout << foo.reset() << '\n'; //全部变为0</span>

bitset::flip():
<span style="font-family:Microsoft YaHei;font-size:24px;">// bitset::flip
#include <iostream> // std::cout
#include <string> // std::string
#include <bitset> // std::bitset

int main()
{
std::bitset<4> foo(std::string("0001"));

std::cout << foo.flip(2) << '\n';// 0101 ,将下标为2的数字翻转为1
std::cout << foo.flip() << '\n';// 1010,将foo全部翻转
system("pause");
return 0;
}</span>

bitset::to_string():变为string输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: