Les opérations bit à bit
La programmation regorge de domaines autant insoupçonnés qu’intéressants. L'utilisation des opérations bit à bit, les fameux opérateurs &, |, ~ et ^, en fait clairement partie. Ces opérations bit à bit sont fréquemment utilisées dans la programmation bas-niveau et plus rarement pour de l'optimisation de code. Ce livre se propose de vous apprendre tout ce qu'il y a à savoir à propos de ces opérations. En sortant de cette lecture, vous saurez non seulement les utiliser, mais aussi faire quelques tours de magie programmatique avec.
Attention cependant : la lecture de ce livre est réservée à ceux qui connaissent le binaire et ses subtilités. Par exemple, vous devez être familier avec l'encodage des entiers et des flottants. Si vous ne savez ce qu'est un complément à 2 ou à 1, ou encore ce que constitue un nombre flottant IEEE754, lisez le chapitre « Codage des nombres » du livre « Fonctionnement d'un ordinateur ». De plus, le cours contiendra des exemples de code source, qui seront rédigés en langage C. Le choix de ce langage est assez simple : le sujet de ce cours est très porté sur le bas-niveau, ce qui requiert un langage bas-niveau. Le C est donc tout indiqué !
Mais trêve de bavardages : explorons dès maintenant le monde fabuleux de la manipulation de bits.
Sommaire
[modifier | modifier le wikicode]Les utilisations logiques (intra-mot) des opérations bit à bit
[modifier | modifier le wikicode]- Les masques
- Le poids de Hamming
- Le bit de parité
- Manipulations sur les bits de poids faible/fort
- Manipulations intra-mots
Les utilisations arithmétiques des opérations bit à bit
[modifier | modifier le wikicode]- Les prédicats de comparaison
- Le branch-free code
- Les opérations arithmétiques sur des entiers
- Les opérations arithmétiques sur des flottants
- Les débordements d'entiers
- Les débordements de puissance de deux
Annexes
[modifier | modifier le wikicode]Voir aussi
[modifier | modifier le wikicode]Pour ceux qui veulent aller plus loin, je conseille la lecture du libre "Hacker's delight", par Henry Warren.
Une première version de ce cours, rédigée par le présent auteur avec l'aide de Lucas-84, a été publiée sur le site zeste de savoir à cette adresse : Les opérations bit à bit et le branch free code. La présente version est une version remaniée et améliorée.