Witam!
Mam do napisania funkcję, która dostaje tablice z informacjami typu bool, którą mam przekonwertować na inta, aby każdy bool odpowiadał kolejnej liczbie w incie (false - 0; true - 1). Poniżej kod z wykorzystaniem systemu dwójkowego, niestety nie działa.
unsigned int compression( bool just_some_data[32] ) { int compr=0; for (int n=0; n<=31; n++) { if (just_some_data[n]==true) { long double value=0; if (n==0) value=1; else { value=2; for (int x=n; x>=2; x--) { value *= 2; } } compr+= value; } } return compr; }
Dokładne wyjaśnienie zadania:
n-ty element tablicy powinien odpowiadać n-temu bitowi w zapisie binarnym wartości int. Jeżeli element tablicy ma wartość true, odpowiadający mu bit ma przyjąć wartość 1, jeżeli element tablicy ma wartość false, odpowiadający mu bit ma przyjąć wartość 0, uwzględniając, że bity numerujemy od prawej strony.