
22/03/2005, 11:08
|
| | Fecha de Ingreso: diciembre-2003
Mensajes: 190
Antigüedad: 21 años, 2 meses Puntos: 0 | |
funciones HASH Hola de nuevo, alguno sabe programar una funcion hash que devuelva valores comprendidos dentro de un rango? por ejemplo, que devuelva valores entre 0 y 100.
Yo uso esta pero hay veces en que da error fatall
/* Funcion hash que calcula la posicion del identificador (ELF Hash Function )*/
int f_hash (char *cadena) {
int len;
unsigned int hash = 0;
unsigned int x = 0;
unsigned int i = 0;
len = MAX;
for(i = 0; i < len; cadena++, i++)
{
hash = ((hash << 4) + (*cadena));
if((x = hash & 0xF0000000L) != 0)
{
hash ^= (x >> 24);
hash &= ~x;
}
}
return (hash & 0x7FFFFFFF) ;
} |