日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ bitset类

發布時間:2025/3/12 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ bitset类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

bitset 模板類由若干個位(bit)組成,它提供一些成員函數,使程序員不必通過位運算就能很方便地訪問、修改其中的任意一位。bitset 模板類在頭文件 中定義如下:

template <size_t N> class bitset {... };

size_t 可看作 unsigned int。將 bitset 實例化時,N 必須是一個整型常數。例如:

bitset <40> bst;

則 bst 是一個由 40 個位組成的對象,用 bitset 的成員函數可以方便地訪問其中任意一位。bitset 中的位從 0 開始編號,第 0 位是最右邊的位。

bitset 有許多成員函數,有些成員函數執行的就是類似于位運算的操作。bitset 成員函數列表如下:

bitset <N> & operator &= (const bitset <N> & rhs); //和另一個 bitset 對象進行與操作bitset <N> & operator |= (const bitset <N> & rhs); //和另一個 bitset 對象進行或操作bitset <N> & operator ^= (const bitset <N> & rhs); //和另一個 bitset 對象進行異或操作bitset <N> & operator <<= (size_t num); //左移 num 位bitset <N> & operator >>= (size_t num); //右移 num 位bitset <N> & set(); //將所有位全部設成 1bitset <N> & set(size_t pos, bool val = true); //將第 pos 位設為 valbitset <N> & reset(); //將所有位全部設成0bitset <N> & reset (size_t pos); //將第 pos 位設成 0bitset <N> & flip(); //將所有位翻轉(0變成1,1變成0)bitset <N> & flip(size_t pos); //翻轉第 pos 位reference operator[] (size_t pos); //返回對第 pos 位的引用bool operator[] (size_t pos) const; //返回第 pos 位的值reference at(size_t pos); //返回對第 pos 位的引用bool at (size_t pos) const; //返回第 pos 位的值unsigned long to_ulong() const; //將對象中的0、1串轉換成整數string to_string () const; //將對象中的0、1串轉換成字符串size_t count() const; //計算 1 的個數size_t size () const; //返回總位數bool operator == (const bitset <N> & rhs) const;bool operator != (const bitset <N> & rhs) const;bool test(size_t pos) const; //測試第 pos 位是否為 1bool any() const; //判斷是否有某位為1bool none() const; //判斷是否全部為0bitset <N> operator << (size_t pos) const; //返回左移 pos 位后的結果bitset <N> operator >> (size_t pos) const; //返回右移 pos 位后的結果bitset <N> operator ~ (); //返回取反后的結果bitset <N> operator & (const bitset <N> & rhs) const; //返回和另一個 bitset 對象 rhs 進行與運算的結果bitset <N> operator | (const bitset <N> & rhs) const; //返回和另一個 bitset 對象 rhs 進行或運算的結果bitset <N> operator ^ (const bitset <N> & rhs) const; //返回和另一個 bitset 對象 rhs 進行異或運算的結果

bitset 的用法。

#include <iostream> #include <bitset> #include <string> using namespace std; int main() {bitset<7> bst1;bitset<7> bst2;cout << "1) " << bst1 << endl; //輸出 1) 0000000bst1.set(0,1);//將第0位變成1,bst1變為 0000001cout << "2) " << bst1 << endl; //輸出 2) 0000001bst1 <<= 4; //左移4位,變為 0010000cout << "3) " << bst1 << endl; //輸出 3) 0010000bst2.set(2);//第二位設置為1,bst2變成 0000100bst2 |=bst1; // bst2變成 0010100cout << "4) " << bst2 << endl; //輸出 4) 0010100cout << "5) " << bst2.to_ulong () << endl; //輸出 5) 20bst2.flip(); //每一位都取反,bst2變成 1101011bst1.set(3); //bst1變成 0011000bst2.flip(6); //bst2變成 0101011bitset<7> bst3 = bst2^ bst1;//bst3 變成 0110011cout << "6) " << bst3 << endl; //輸出 6) 0110011cout << "7) " << bst3[3] << "," << bst3[4] << endl; //輸出 7) 0,1return 0; }

總結

以上是生活随笔為你收集整理的C++ bitset类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。