YouTip LogoYouTip

Cpp Libs Bitset

In C++ programming, `` is part of the standard library that provides a way to manipulate fixed-size bit sets. A bitset is an array of bits, where each bit can be 0 or 1. `` provides an efficient way to store and manipulate binary data, especially suitable for scenarios requiring bit-level operations, such as flag management, bitmask operations, etc. `bitset` is a template class whose template parameter defines the size of the bit set. For example, `bitset` represents a bitset containing 32 bits. ### Syntax The following is the basic syntax for using `bitset`: #include // Declare a bitset of size Nstd::bitset b;// Initialize bitsetb = std::bitset(value);// Access a single bit in the bitsetbool bit = b; ### Basic Usage of std::bitset std::bitset is a template class used to represent a fixed-size binary bit sequence. Its template parameter is the number of bits (N), representing the length of the binary sequence. Defining std::bitset: std::bitset bits; // Define an 8-bit binary sequence Initializing std::bitset: * Default initialization: all bits are `0`. * Initialize from integer: convert integer to binary. * Initialize from string: parse string as binary. ## Example std::bitset bits1;// Default initialization: 00000000 std::bitset bits2(42);// Initialize from integer: 00101010 std::bitset bits3("10101010");// Initialize from string: 10101010 ### Common Member Functions std::bitset provides rich member functions to manipulate binary bits. Accessing and modifying bits: * `operator[]`: access or modify a specific bit. * `set()`: set a specific bit or all bits to `1`. * `reset()`: set a specific bit or all bits to `0`. * `flip()`: flip a specific bit or all bits. ## Example std::bitset bits("00001111"); bits=1;// Modify bit 0: 00001111 -> 00001111 bits.set(4);// Set bit 4: 00001111 -> 00011111 bits.reset(1);// Reset bit 1: 00011111 -> 00011101 bits.flip();// Flip all bits: 00011101 -> 11100010 Querying bit information: * `count()`: returns the number of `1` bits. * `size()`: returns the number of bits. * `test(pos)`: checks if a specific bit is `1`. * `all()`: checks if all bits are `1`. * `any()`: checks if any bit is `1`. * `none()`: checks if all bits are `0`. ## Example std::bitset bits("10101010"); std::cout<<"Count of 1s: "<< bits.count()<< std::endl;// Output 4 std::cout<<"Size: "<< bits.size()<< std::endl;// Output 8 std::cout<<"Is bit 3 set? "<< bits.test(3)<< std::endl;// Output 1 (true) std::cout<<"All bits set? "<< bits.all()<< std::endl;// Output 0 (false) Converting to other types: * `to_ulong()`: converts `std::bitset` to `unsigned long`. * `to_ullong()`: converts `std::bitset` to `unsigned long long`. * `to_string()`: converts `std::bitset` to string. ## Example std::bitset bits("10101010"); unsigned long num = bits.to_ulong();// Convert to integer: 170 std::string str = bits.to_string();// Convert to string: "10101010" ### Bit Operations std::bitset supports common bit operations such as bitwise AND, bitwise OR, bitwise XOR, and bitwise NOT. * `&`: bitwise AND * `|`: bitwise OR * `^`: bitwise XOR * `~`: bitwise NOT ## Example
← Cpp Libs AlgorithmCpp Libs Map β†’