Может быть, я что-то упускаю, но это кажется странным. Я не помню общих простых алгоритмов, но, например,
(excerpts)
tab[i] = 0xff ;
mask = 0x01 ;</p>
<p>for (int j = 0 ; j < 8 ; j++)
{
if ((tab[i] & mask) != 0 )
mask = mask<<1 ;
Это означает, что вы всегда будете идти 8 раз - так зачем проверять '&'?
Еще один,
x = nb_bit ;
while (( x > 1 )&&(x < 16384))
{
tab[i] = tab[i] ^ mask ;
x = x * 2 ;
}
Это просто триггеры на каждой итерации. Это то, что вы хотите?
Наконец, поскольку я не знаю, что вы хотите сделать, будьте осторожны с битовой длиной ваших объектов. Вы можете бросить флоп
0000 0000 1111 1111 ^ 0000 0001
или
1111 1111 1111 1111 ^ 0000 00001
Поскольку я не совсем понимаю, что вы пытаетесь сделать, не уверен, что это может быть связано.
РЕДАКТИРОВАТЬ (после комментария Хамзы):
Да. Этот цикл выполняет следующее: сравни / 'и'
1111 1111 1111 1111
с
0000 0001
0000 0010
0000 0100,
и это всегда будет верным. Я не знаю, что вы хотите здесь сделать, но это кажется подозрительным (смена местоположения сейчас без интернета, но гл. :)).