gpt4 book ai didi

c++算法将整数转换为bool数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:25:18 24 4
gpt4 key购买 nike

我正在尝试编写一种算法,将范围内的每个整数作为二进制字符串保存到文件中。例如,对于范围 0 到 7:

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

请注意,前导零和数字之间的空格是必不可少的。

我不知道如何以简单的方式将整数转换为由 bool [] 表示的二进制数(或其他替代方法)。

编辑

根据要求,我目前的解决方案是:

const int NUM_INPUTS = 6;
bool digits[NUM_INPUTS] = {0};
int NUM_PATTERNS = pow(2, NUM_INPUTS);

for(int q = 0; q < NUM_PATTERNS; q++)
{
for(int w = NUM_INPUTS -1 ; w > -1 ; w--)
{

if( ! ((q+1) % ( (int) pow(2, w))) )
digits[w] = !digits[w];

outf << digits[w] << " ";
}

outf << "\n";
}

不幸的是,这有点古怪,因为它给我的第一个模式是 000001 而不是 000000。

这不是作业。我只是编写一个简单的算法来为我提供一个用于训练神经网络的输入文件。

最佳答案

不要使用pow。只需使用二进制数学:

const int NUM_INPUTS = 6;
int NUM_PATTERNS = 1 << NUM_INPUTS;

for(int q = 0; q < NUM_PATTERNS; q++)
{
for(int w = NUM_INPUTS -1 ; w > -1; w--)
{
outf << ((q>>w) & 1) << " ";
}
outf << "\n";
}

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

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