Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2005, 11:08
selma128
 
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) ;


}