Manipulation De Bit

Manipulation de bit

La manipulation de bit est l'action de manipuler algorithmiquement des bits ou toute forme de données inférieur à un octet. En informatique, la manipulation de bit est utilisée pour le contrôle bas niveau de périphériques, dans les algorithmes de détection et de correction d'erreur, de cryptage et pour l'optimisation. Pour la plupart des autres tâches, la plupart des langages de programmation moderne permettent au programmeur de travailler directement avec des abstractions plutôt qu'avec les bits qu'elles représentent.

La manipulation de bit se fait à l'aide des opérations unaires: ET (AND), OU (OR), OU exclusif (XOR) et NON (NOT).

Sommaire

Bit twiddling

Bit twiddling ou bit bashing (manipulation "violente" de bit) est souvent utilisé dans le sens de manipulation de bit, mais quelquefois pour désigner les méthodes audacieuses ou ingénieuses de manipulation de bit. Ce terme est également utilisé de façon moins flatteuse pour désigner des manipulations longues et fastidieuses d'un logiciel lorsque les améliorations obtenues sont négligeables, tout en donnant un code source illisible pour tout autre personne que son auteur. Cette expression date des débuts de l'informatique, lorsque les utilisateurs devaient ajuster patiemment les commandes de l'ordinateur. Alors que l'informatique évoluait, les programmeurs adoptèrent ce terme pour désigner les manipulations binaires de données.

Exemple de manipulation de bit

Le code ci-dessous, écrit en C détermine entre 2 entier (x et y) le plus petit et le place dans r.

// La méthode classique

if (x < y)
    r = x;
else
    r = y;

// Une méthode plus rapide sur certaines machines

r = y + ((x - y) & -(x < y));

Le symbole & représente le ET unaire en C.

Dans la plupart des cas, le programmeur choisira la première méthode. Cependant, si un tel test doit être effectué des millions de fois par seconde, le programmeur pourra exploiter sa connaissance de la représentation des entiers en binaire et utilisera la seconde méthode: celle-ci n'utilisant aucun renvoi sera plus rapide sur la plupart des processeurs.

Techniques de base

La manipulation de bit pose souvent problème aux codeurs débutants, l'utilisation d'instructions assembleur pour manipuler les bits est souvent source d'embarras. C'est pourquoi, utiliser des méthodes de plus haut niveau est recommandé, puisque cela améliore la portabilité et la lisibilité du code source, sous réserve, évidemment, que le lecteur connaisse le langage utilisé.

L'exemple ci-dessous est écrit en C, mais peut être adapté à tout langage supportant les opérateurs unaires.

Mettre un bit à 1 (n est le numéro du bit, et 0 le bit de poids faible):

unsigned char a |= (1 << n);

Mettre un bit à 0:

unsigned char b &= ~(1 << n);

Inverser la valeur du bit:

unsigned char c ^= (1 << n);

Tester la valeur d'un bit

unsigned char e = d & (1 << n); // d ayant la valeur en octet 

Lors de la manipulation d'une grande quantité de bits constituée de plusieurs octets, on peut utiliser n = (index % 8) pour calculer le bit désiré. L'octet désiré peut également être calculé avec index / 8.

Voir aussi

Références

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Manipulation de bit ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Manipulation De Bit de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Manipulation de bit — La manipulation de bit est l action de manipuler algorithmiquement des bits ou toute forme de données inférieur à un octet. En informatique, la manipulation de bit est utilisée pour le contrôle bas niveau de périphériques, dans les algorithmes de …   Wikipédia en Français

  • De Havilland Comet — Infobox Aircraft name= DH.106 Comet type= Airliner manufacturer= de Havilland caption= A Royal Air Force Comet C.2 in flight. first flight= 27 July 1949 introduced= 2 May 1952 with BOAC retired= status=In military service only primary user= BOAC… …   Wikipedia

  • de Havilland Comet — This article is about the jet airliner. For the 1930s racing aircraft, see de Havilland DH.88. DH 106 Comet …   Wikipedia

  • Liste des normes de l'Union internationale des télécommunications — Les normes et recommandations principales de l UIT T sont : Sommaire 1 A Organisation du travail de l UIT T 2 B Signification des expressions : définitions, symboles, classification 3 C Statist …   Wikipédia en Français

  • Unité centrale de traitement — Processeur « CPU » redirige ici. Pour les autres significations, voir CPU (homonymie) …   Wikipédia en Français

  • Système de numération binaire — Système binaire Pour les articles homonymes, voir Binaire. Exemple d informations binaires Le système binaire est un système de numération …   Wikipédia en Français

  • Distance De Hamming — La distance de Hamming, définie par Richard Hamming, est utilisée en informatique, en traitement du signal et dans les télécommunications. Elle joue un rôle important en théorie algébrique des codes correcteurs. Elle permet de quantifier la… …   Wikipédia en Français

  • Distance de hamming — La distance de Hamming, définie par Richard Hamming, est utilisée en informatique, en traitement du signal et dans les télécommunications. Elle joue un rôle important en théorie algébrique des codes correcteurs. Elle permet de quantifier la… …   Wikipédia en Français

  • Poids de Hamming — Distance de Hamming La distance de Hamming, définie par Richard Hamming, est utilisée en informatique, en traitement du signal et dans les télécommunications. Elle joue un rôle important en théorie algébrique des codes correcteurs. Elle permet de …   Wikipédia en Français

  • GNU Image Manipulation Program — GIMP GIMP 2.6.3 unter Micr …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”