📄 cppbitset_details.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <meta name="generator" content="HTML Tidy for Linux/x86 (vers 1st October 2002), see www.w3.org"> <title>C++ Bitsets</title> </head> <body bgcolor="#ffffff"> <table width="100%" bgcolor="#eeeeff"> <tr> <td><a href="index.html">cppreference.com</a> -> <a href="cppbitset.html">C++ Bitsets</a> -> Details</td> </tr> </table> <h1>C++ Bitsets</h1> <hr> <h2><a name="Constructors">Constructors</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> bitset(); bitset( unsigned long val );</pre> </td> </tr> </table> <p>Bitsets can either be constructed with no arguments or with an unsigned long number <i>val</i> that will be converted into binary and inserted into the bitset. When creating bitsets, the number given in the place of the template determines how long the bitset is.</p> <p>For example, the following code creates two bitsets and displays them:</p><pre> // create a bitset that is 8 bits long bitset<8> bs; // display that bitset for( int i = (int) bs.size()-1; i >= 0; i-- ) { cout << bs[i] << " "; } cout << endl; // create a bitset out of a number bitset<8> bs2( (long) 131 ); // display that bitset, too for( int i = (int) bs2.size()-1; i >= 0; i-- ) { cout << bs2[i] << " "; } cout << endl;</pre> <br> <br> <hr> <h2><a name="Operators">Operators</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> !=, ==, &=, ^=, |=, ~, <<=, >>=, []</pre> </td> </tr> </table> <p>These operators all work with bitsets. They can be described as follows:</p> <ul> <li>!= returns <strong>true</strong> if the two bitsets are not equal.</li> <li>== returns <strong>true</strong> if the two bitsets are equal.</li> <li>&= performs the AND operation on the two bitsets.</li> <li>^= performs the XOR operation on the two bitsets.</li> <li>|= performs the OR operation on the two bitsets.</li> <li>~ reverses the bitset (same as calling <a href="#flip">flip()</a>)</li> <li><<= shifts the bitset to the left</li> <li>>>= shifts the bitset to the right</li> <li>[x] returns a reference to the <i>xth</i> bit in the bitset.</li> </ul> <br> <br> <p>For example, the following code creates a bitset and shifts it to the left 4 places:</p><pre> // create a bitset out of a number bitset<8> bs2( (long) 131 ); cout << "bs2 is " << bs2 << endl; // shift the bitset to the left by 4 digits bs2 <<= 4; cout << "now bs2 is " << bs2 << endl;</pre> <p>When the above code is run, it displays:</p><pre> bs2 is 10000011 now bs2 is 00110000</pre> <hr> <h2><a name="any">any</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> bool any();</pre> </td> </tr> </table> <p>The any() function returns <strong>true</strong> if any bit of the bitset is 1, otherwise, it returns false.</p> <hr> <h2><a name="count">count</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> size_type count();</pre> </td> </tr> </table> <p>The function count() returns the number of bits that are set to 1 in the bitset.</p> <hr> <h2><a name="flip">flip</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> bitset<N> &flip(); bitset<N> &flip( size_t pos );</pre> </td> </tr> </table> <p>The flip() function inverts all of the bits in the bitset, and returns the bitset. If <i>pos</i> is specified, only the bit at position <i>pos</i> is flipped.</p> <i>Related topics:</i><br> <strong><a href="#Operators">~ operator</a></strong> <hr> <h2><a name="none">none</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> bool none();</pre> </td> </tr> </table> <p>The none() function only returns <strong>true</strong> if none of the bits in the bitset are set to 1.</p> <hr> <h2><a name="reset">reset</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> bitset<N> &reset(); bitset<N> &reset( size_t pos );</pre> </td> </tr> </table> <p>The reset() fucntion clears all of the bits in the bitset, and returns the bitset. If <i>pos</i> is specified, then only the bit at position <i>pos</i> is cleared.</p> <hr> <h2><a name="set">set</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> bitset<N> &set(); bitset<N> &set( size_t pos, int val=1 );</pre> </td> </tr> </table> <p>The set() fucntion sets all of the bits in the bitset, and returns the bitset. If <i>pos</i> is specified, then only the bit at position <i>pos</i> is set.</p> <hr> <h2><a name="size">size</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> size_t size();</pre> </td> </tr> </table> <p>The size() function returns the number of bits that the bitset can hold.</p> <hr> <h2><a name="test">test</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> bool test( size_t pos );</pre> </td> </tr> </table> <p>The function test() returns the value of the bit at position <i>pos</i>.</p> <hr> <h2><a name="to_string">to_string</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> string to_string();</pre> </td> </tr> </table> <p>The to_string() function returns a string representation of the bitset.</p> <hr> <h2><a name="to_ulong">to_ulong</a></h2> <i>Syntax:</i> <table bgcolor="#ccccff"> <tr> <td><pre> unsigned long to_ulong();</pre> </td> </tr> </table> <p>The function to_ulong() returns the bitset, converted into an unsigned long integer.</p> </body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -