elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con función hash con peso
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con función hash con peso  (Leído 2,264 veces)
Josh96

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema con función hash con peso
« en: 11 Abril 2015, 03:27 am »

¿Qué tal? Soy nuevo en esto de la programación y recién inicio con funciones hash, tengo un problema con la función de dispersión con peso, cuando ingreso una cadena con longitud 6 la función genera números negativos y cuando son cadenas de 5 o menos sí funciona correctamente. ¿Qué problema logran identificar?
Código

Código:
#define MAX 100
#define PESO 37
void hashcliente(char nombre[]){ //generador de posición con peso hash
int suma=0;
int lugar=0;
int i=0; //posición
int j=0; //potencia
int ascii=0;

j=strlen(nombre)-1; //indica a qué potencia se elevará el peso
while(i<(strlen(nombre))){ //se realiza hasta que la posición del caracter sea igual a la longitud de la cadena, si la cadena=6 i=0 a 5
ascii=(int)nombre[i]; //convierte el caracter a su valor en ascii
suma=suma+(ascii*pow(PESO,j)); //j disminuye mientras i aumenta porque la primera posición se eleva por la longitud-1
i++;
j--;
printf("suma parcial: %d\n", suma);
}
printf("suma total: %d\n", suma);
lugar=suma%MAX;
printf("lugar: %d\n", lugar);
}


« Última modificación: 11 Abril 2015, 04:25 am por Josh96 » En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: Problema con función hash con peso
« Respuesta #1 en: 11 Abril 2015, 03:54 am »

Código
  1. ascii=(int)nombre[i];


En línea

Josh96

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema con función hash con peso
« Respuesta #2 en: 11 Abril 2015, 03:59 am »

Código
  1. ascii=(int)nombre[i];

Olvidé escribirlo en el código que compartí pero en el compilador sí lo tengo como lo pusiste y me continúa con el erro
En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: Problema con función hash con peso
« Respuesta #3 en: 11 Abril 2015, 04:40 am »

Cuando elevas 37 a la 6, excedes de 2147483648 que es el máximo para un signed int por eso sale negativo, tienes que utilizar un tipo de variable más grande para suma.
En línea

Josh96

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema con función hash con peso
« Respuesta #4 en: 13 Abril 2015, 01:57 am »

Cuando elevas 37 a la 6, excedes de 2147483648 que es el máximo para un signed int por eso sale negativo, tienes que utilizar un tipo de variable más grande para suma.
Tienes razón, gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema cargando hash MD5
Hacking
hused 2 2,647 Último mensaje 5 Marzo 2010, 17:56 pm
por kamsky
Problema con hash SHA-1(HMAC)
Hacking
Wired 0 2,620 Último mensaje 13 Noviembre 2010, 04:51 am
por Wired
Desarrollo a medida de función hash
Criptografía
Synaptico 2 3,073 Último mensaje 6 Enero 2013, 18:41 pm
por Synaptico
Problema en perl con Hash
Scripting
Ocelot1994 2 2,155 Último mensaje 25 Abril 2017, 01:20 am
por Ocelot1994
Problema con peso de backups Postgres
Bases de Datos
_CrisiS_ 3 8,304 Último mensaje 24 Junio 2023, 18:00 pm
por Carloswaldo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines