Un cas typique d'erreur lors de la transmission d'un flux, c'est un bit qui passe de 1 à 0 ou inversement.
Par exemple, si ton fichier est sous forme de tableau de byte, et que tu veux inverser le bit numéro "n" (0 à 7) de l'octet "o", il faudrait faire:
data[o] = (byte) (data[o] ^ (0x01 << n ));
Après a toi de voir la règle pour déterminer combien de bits doivent être inversés, et où.
Pour décaler tout de un bit, ça deviendrait plus compliqué car il faudrait décaler l'octet en question ainsi que tous les octets suivants. De plus, je ne crois pas que ce soit un cas d'erreur courant.
Partager