我正在尝试编写一种算法,该算法将在一个范围内的每个整数都以二进制字符串的形式保存到文件中。例如,对于 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 []
s 表示的二进制数(或一些替代方法)。
编辑
根据要求,到目前为止我的解决方案是:
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。
这不是家庭作业。我只是在编写一个简单的算法来给我一个用于训练神经网络的输入文件。