Для распределения ошибок используйте генератор случайных чисел. rand()
/ srand()
должно быть достаточно, если это для целей тестирования.
Чтобы перевернуть бит, вы можете использовать операторы битового сдвига и битового xor.
unsigned char flip(unsigned char c, int bit) {
return c ^ (1 << bit);
}
Вы также можете перевернуть более одного бита, используя битовую маску, отличную от (1 << bit)
, для которой установлен только один бит:
unsigned char flip(unsigned char c, unsigned char mask) {
return c ^ (1 << mask);
}
// flip bits 0 and 3 (00001001 = 0x09)
flip(c, 0x09);