Programación General => Pascal => Mensaje iniciado por: Panteon en Jueves 30 de Septiembre de 2004, 00:47
Título: sacar el resto
Publicado por: Panteon en Jueves 30 de Septiembre de 2004, 00:47
Saludos
Tengo un pequeño problema en un programa que estoy haciendo, necesito obtener el ultimo digito de un número
por ejemplo de 887 sacar el 7 ó de 453 sacar el 3.
la verdad he intentado varias formas de lograrlo..pero sin éxito...me gustaria saber si alguien me pudiera ayudar con eso...
Muchas Gracias
Título: Re: sacar el resto
Publicado por: Amilius en Jueves 30 de Septiembre de 2004, 06:58
Usa el operador módulo: (realiza una división entera y obtienes el "residuo")
Código: Text
// con en resultado entre [0...y-1]
modulo:=x mod y;
//Para tu caso [0..9]
residuo:=numero mod 10;
Para enteros positivos el resultado puede ir de 0 a y-1. Si usaras módulos potencias de 2 es más rápido usar "and" en numeros enteros: Por ejemplo módulo 2,4,8,16,... (noten que se aplica la "máscara" correspondiente al modulo-1. Ej. para 2 es 1, para 4 es 3, para 8 es 7. El efecto de máscara se nota claramente al escribir los números en binaro )
Código: Text
modulo=x and $1; //Muy util para ver si es impar;)
modulo=x and $3;
modulo=x and $7;
modulo=x and $F;
Aplicar el operador lógico de bits "and" para estos casos especiales (módulos potencias de 2 de enteros positivos) es de lejos la forma más rápida.
Título: Re: sacar el resto
Publicado por: Panteon en Viernes 1 de Octubre de 2004, 00:49
Muchas gracias...jajaja ahora que me lo esplicas así, fue una preguntilla bastante obvia
pero muchas gracias por sacarme de mi problema :lol: