C++ bitset类详解
发布时间:2020-12-16 07:41:13 所属栏目:百科 来源:网络整理
导读:bitset 模板类由若干个位(bit)组成,它提供一些成员函数,使程序员不必通过位运算就能很方便地访问、修改其中的任意一位。bitset 模板类在头文件 bitset 中定义如下: template size_t N class bitset { ??? ... }; size_t 可看作 unsigned int。将 bitset
bitset 模板类由若干个位(bit)组成,它提供一些成员函数,使程序员不必通过位运算就能很方便地访问、修改其中的任意一位。bitset 模板类在头文件 <bitset> 中定义如下:
template <size_t N> bitset <40> bst;则 bst 是一个由 40 个位组成的对象,用 bitset 的成员函数可以方便地访问其中任意一位。bitset 中的位从 0 开始编号,第 0 位是最右边的位。 bitset 有许多成员函数,有些成员函数执行的就是类似于位运算的操作。bitset 成员函数列表如下:
下面的程序演示了 bitset 的用法。 #include <iostream> #include <bitset> #include <string> using namespace std; int main() { bitset<7> bst1; bitset<7> bst2; cout << "1) " << bst1 << endl; //输出 1) 0000000 bst1.set(0,1);//将第0位变成1,bst1变为 0000001 cout << "2) " << bst1 << endl; //输出 2) 0000001 bst1 <<= 4; //左移4位,变为 0010000 cout << "3) " << bst1 << endl; //输出 3) 0010000 bst2.set(2);//第二位设置为1,bst2变成 0000100 bst2 |=bst1; // bst2变成 0010100 cout << "4) " << bst2 << endl; //输出 4) 0010100 cout << "5) " << bst2.to_ulong () << endl; //输出 5) 20 bst2.flip(); //每一位都取反,bst2变成 1101011 bst1.set(3); //bst1变成 0011000 bst2.flip(6); //bst2变成 0101011 bitset<7> bst3 = bst2^ bst1;//bst3 变成 0110011 cout << "6) " << bst3 << endl; //输出 6) 0110011 cout << "7) " << bst3[3] << "," << bst3[4] << endl; //输出 7) 0,1 return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |