• Sábado 21 de Diciembre de 2024, 20:00

Autor Tema:  sacar el resto  (Leído 1972 veces)

Panteon

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
sacar el resto
« en: Jueves 30 de Septiembre de 2004, 00:47 »
0
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

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: sacar el resto
« Respuesta #1 en: Jueves 30 de Septiembre de 2004, 06:58 »
0
Usa el operador módulo: (realiza una división entera y obtienes el "residuo")

Código: Text
  1.  
  2. // con en resultado entre [0...y-1]
  3. modulo:=x mod y;
  4.  
  5. //Para tu caso [0..9]
  6. residuo:=numero mod 10;
  7.  
  8.  

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
  1.  
  2. modulo=x and $1; //Muy util para ver si es impar;)
  3. modulo=x and $3;
  4. modulo=x and $7;
  5. modulo=x and $F;
  6.  
  7.  

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.

Panteon

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: sacar el resto
« Respuesta #2 en: Viernes 1 de Octubre de 2004, 00:49 »
0
Muchas gracias...jajaja ahora que me lo esplicas así, fue una preguntilla bastante obvia

pero muchas gracias por sacarme de mi problema  :lol: