Bonjour,
Je cherche à trouver la distance de Hamming (wikipedia).
J'ai un code qui fonctionne ... mais qui ne répond pas à mes attentes:
Lorsque je lance ./hamming_distance 100 110, le résultat donne 2 au lieu de 1 car le programme considère que 100 et 110 sont de type INT (donc 100 = 01100100 et 110 = 01101110). Or je voudrais qu'il les considères comme des binaires. Je pas trop comment faire. J'ai bien vu que GCC permettait en ajoutant "0b" en prefix qu'il considère que les données sont en binaire litérale. Mais je suis perdu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <stdlib.h> #include<stdio.h> #include<string.h> int main(int argc, char *argv[]) { int hamming_distance(int x, int y) { return __builtin_popcount(x ^ y); } int a,b; a = atoi(argv[1]); b = atoi(argv[2]); int count = hamming_distance(a,b); printf("\nHamming Distance : %d",count); }
Partager