Je rencontre un problème très délicat avec la manipulation de bits. Pour autant que je sache, la plus petite taille variable pour contenir une valeur est un octet de 8 bits. Les opérations de bits disponibles en C/C++ s'appliquent à une unité entière d'octets. Imaginez que j'ai une carte pour remplacer un schéma binaire 100100 (6 bits) avec un signal de 10000 (5 bits). Si le 1er octet des données d'entrée d'un fichier est 10010001 (8 bits) étant stocké dans une variable char, une partie de celui-ci correspond au modèle 6 bits et est donc remplacé par le signal 5 bits pour donner un résultat de 1000001 (7 bits) .correspondance de bit et remplacement
Je peux utiliser un masque pour manipuler les bits dans un octet pour obtenir un résultat des bits les plus à gauche à 10000 (5 bits), mais les 3 bits les plus à droite deviennent très difficiles à manipuler. Je ne peux pas décaler les 3 bits les plus à droite des données d'origine pour obtenir le résultat correct 1000001 (7 bits) suivi par 1 bit de remplissage dans cette variable char qui doit être rempli par le 1er bit de l'octet d'octet suivant suivi. Je me demande si C/C++ peut réellement faire ce genre de remplacement de modèles de bits de longueur qui ne tiennent pas dans une variable Char (1 octet) ou même Int (4 octets). Est-ce que le C/C++ peut faire l'affaire ou nous devons opter pour d'autres langages d'assemblage qui traitent des manipulations à un seul bit?
J'ai entendu que Power Basic peut être capable de faire la manipulation bit par bit mieux que C/C++.
Pourriez-vous s'il vous plaît mettre des sauts de ligne là-dedans? kthanxbai –
Comparer Power Basic à C/C++? Ça sent le troll. – Oded
Obligatoire: http://graphics.stanford.edu/~seander/bithacks.html –