gpt4 book ai didi

c++ - 将位集数组转换为整数数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:06:46 24 4
gpt4 key购买 nike

在 C++ 中,我如何将位集数组更改为一维整数数组,每个元素仅包含一位数字。例如,我有 bitset<8> bitArray[n],我想插入 int binArray[8*n],其中 binArray 包含 [0]、[1]、[1]、[0]、[ 1],[0] 等等。

最佳答案

您可以使用 std::bitset::operator[]访问特定位。不过请记住,[0] 表示最低有效位,但我们希望以最高有效 -> 最低有效的顺序存储它们,因此我们必须使用 7 - j 而不是简单的 j:

#include <iostream>
#include <bitset>

int main()
{
constexpr int SIZE = 5;
std::bitset<8> bitArray[SIZE] = {3, 8, 125, 40, 13};
int binArray[8 * SIZE];

for(int i = 0, index = 0; i < SIZE; ++i){
for(int j = 0; j < 8; ++j){
binArray[index++] = bitArray[i][7 - j];
}
}
}

binArray 的内容如下所示(我添加的换行符以提高可读性):

0 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0
0 1 1 1 1 1 0 1
0 0 0 0 1 1 0 1

关于c++ - 将位集数组转换为整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48738255/

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