gpt4 book ai didi

c++ - std::bitset 在 cpp 中的工作

转载 作者:行者123 更新时间:2023-11-30 02:33:36 25 4
gpt4 key购买 nike

我想知道这个程序是如何工作的:

#include <bitset>
#include <iostream>

const int option_1 = 0;
const int option_2 = 1;
const int option_3 = 2;
const int option_4 = 3;
const int option_5 = 4;
const int option_6 = 5;
const int option_7 = 6;
const int option_8 = 7;

int main()
{
std::bitset<8> bits(0x2);
bits.set(option_5);
bits.flip(option_6);
bits.reset(option_6);

std::cout << "Bit 4 has value: " << bits.test(option_5) << '\n';
std::cout << "Bit 5 has value: " << bits.test(option_6) << '\n';
std::cout << "All the bits: " << bits << '\n';

return 0;
}

我在网站上看过这个例子,但是无法理解这个程序的某些部分的工作。
在这里,首先将 option5 设置为 4,然后在主程序中“bit.set(option5);”用于将其设置为 1(是我的想法)。那么上面分配给整数option5的4有什么用??

最佳答案

所以这基本上是一个高级别的位数组。使用非类型模板在堆栈上创建一个位数组。

option5 变量用于将第四位(打印时从后面算起)设置为 1。因此,当您打印出值时, 指向的位置有一个 1 option5 从后面算位置 4。

bitset 的构造函数用于将 bitset 初始化为看起来像 0b00000010。 set()函数将指定位置的位设置为1,reset()函数将指定位置的位设置为0。

关于c++ - std::bitset 在 cpp 中的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35237271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com