Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: La quintessence des algorithmes bit à bit

Posté par Ontologia (page perso, ). Modéré le 07 septembre 2006.
Jouer avec les bits lorsqu'on code est souvent un bonheur intense tant les possibilités sont larges malgré les axiomes 8/16/32/64 bits dont on dispose sur les processeurs (et donc) dans les langages.

De nombreux "grands maîtres", dont Brian Kernighan lui-même ont écrit de nombreux algorithmes utilitaires effectuant des travaux sur les champs de bits que sont nos mots mémoires.

On trouvera donc dans l'article cité, qui des comptage de bit (à 1 ou 0), des tests de parités parallélisables, des rotations de bits, des modulos, des log base 2 (et donc des log base n). L'article prévient en introduction que les problèmes de cache, bande passante mémoire doivent être pris en compte dans l'utilisation de l'algorithme sur l'architecture libre.

Un bien beau texte.

NdM : les extraits de code sont du domaine public d'après l'introduction du document.

> Lire la dépêche (45 commentaires, moyenne: 3,3).  

Vous avez demandé le commentaire #751895.

Encore un coup des brevets

Posté par Bench () le 07/09/2006 à 23:07. (lien). Évalué à 10.

au sujet de la technique pour obtenir la valeur absolue :


int v; // we want to find the absolute value of v
int r; // the result goes here

r = (v ^ (v >> (sizeof(int) * CHAR_BIT - 1))) - (v >> (sizeof(int) * CHAR_BIT - 1));

Il est dit que :
Unfortunately, this method has been patented in the USA on June 6, 2000 by Vladimir Yu Volkonsky and assigned to Sun Microsystems

Heureusement peu après des liens sont donnés pour prouver que le brevet est invalide!
C'est dingue de breveter des techniques pareilles... je comprendrais jamais... heureusement que D.Knuth a ecrit ses bouquins sur l'art de la programmation, sinon on pourrai jamais utiliser de maths en informatique!