NemoCut32, Вы бы сразу готовую подпрограмму и на указателях, а не с массивом:
unsigned char nibble_bits_sum_by_column (unsigned char * buffer, int buf_size) {
int i = buf_size;
unsigned char * buf_ptr = buffer;
unsigned char sum = …;
while (--i › 0) {
buf_ptr++;
sum ^= …;
}
sum ^= sum ‹‹ 4; // bitwise sum for all nibbles in high nibble
return (sum ›› 4); // return sum in low nibble
}
Только многоточия правильно заменить осталось
Последние две операции и дают поколонную сумму битов в нибблах, иначе это сумма по 8 колонкам в байте, а задача получить именно для нибблов.
PS В Вашем примере немного путаница со строчными и прописными.