En el campo de información, distancia de Hamming de dos longitud igual de una cadena es el número de caracteres diferentes en la misma posición, es decir, una cadena para sustituir el número de reemplazos requerido otra cadena.
Por ejemplo:
Distancia de Hamming es 2 xxxxyy y xxxxzz;
111.100 y 111.111 distancia de Hamming es 2;
Para los números binarios, el resultado es equivalente al número de resultados de Hamming distancia en una ^ b 1.
[String]
código C ++
/ *
Versión: 1.0
autor: hellogiser
Fecha: 05/30/2014
* /
// distancia de Hamming de dos cadenas
hamdist sin signo (const char * cadena1, const char * str2)
{
// aaabb aaacc
si (cadena1 == NULL || str2 == NULL)
return 0;
int LEN1 = strlen (str1);
int len2 = strlen (str2);
si (LEN1! = len2)
return 0;
dist unsigned = 0;
while (* && * cadena1 cadena2)
{
dist + = (* cadena1! = * str2)? 1: 0;
str1 ++;
str2 ++;
}
dist retorno;
}
[Digital]
código C ++
/ *
Versión: 1.0
autor: hellogiser
Fecha: 05/30/2014
* /
// distancia de Hamming de dos números enteros 0-1 bits de
hamdist sin signo (x sin signo, sin signo y)
{
// 11111 11100
unsigned dist = 0, val = x ^ y; // XOR
// Contar el número de bits puestos
while (val)
{
++ dist;
val & = val - 1;
}
dist retorno;
}