我試圖編寫一個算法,將一個範圍內的每個整數保存爲文件作爲二進制字符串。例如,對於範圍0到7:C++將一個整數轉換爲一個布爾數組的算法
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
這不是作業。我只是編寫一個簡單的算法來給我一個用於訓練神經網絡的輸入文件。
這是功課?如果是這樣,請將其標記爲 – Shahbaz 2012-04-04 15:01:14
我認爲您想要進行一些鹼基轉換。 Google ** C++ base 2 ** – Blender 2012-04-04 15:01:42
二進制數據與bools數組不一樣...你是否應該創建自己的二進制數字表示? – Kiril 2012-04-04 15:02:09