Autor Tema: numero par o impar  (Leído 7734 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LAB_je

  • PIC10
  • *
  • Mensajes: 12
numero par o impar
« en: 07 de Septiembre de 2006, 08:55:18 »
hola a todos!!!
existe alguna funcion en C que me diga si un numero es par o no??. no encuentro ninguna forma de hacerlo (dividiendolo entre dos me tiene que dar un numero entero, pero como compruebo si el resultado es entero o no???hay alguan funcion que me compruebe esto????). seguro que a alguien se le ocurre algo pq es un tonteria pero oy ando un poquito espeso!!!estoy programando en C18, y dicha comprobacion la tengo que realizar de un numero q esta constantemente incrementandose(se encuentra dentro de un for)!! muchas gracias

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: numero par o impar
« Respuesta #1 en: 07 de Septiembre de 2006, 09:12:21 »
Pues en C está el operador módulo % , el cual al realizar una división por dos te dice si es par o no
Código: C
  1. if( num%2 == 0 )
  2.                      printf("Numero par\n")
  3.               else
  4.                      printf("Numero impar\n");


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado nvicchi

  • PIC10
  • *
  • Mensajes: 5
Re: numero par o impar
« Respuesta #2 en: 07 de Septiembre de 2006, 09:27:18 »
No programo los PIC en C, sino en assembler, pero me imagino que tendras algun operador a nivel de bits que te permita testear el estado de un bit especifico. Un número par siempre tiene su bit menos significativo en 0, y si es impar siempre es 1. Por lo tanto, para saber si un numero es impar o no, solo tenes que chequear ese bit. En asm, seria algo asi:

btfsc numero, 0
goto es_impar
goto es_par

Un abrazo.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: numero par o impar
« Respuesta #3 en: 07 de Septiembre de 2006, 10:44:03 »
Cuando no puedo hacer una rutina en asm (ej: algo dificil ó engorroso) recurro al C (es un truquillo :)), algunos compiladores tienen la opción de mostrar el código C y su respectivo asm, o sea cada linea en C tiene su linea en asm, entonces hago la rutina que quiero en C y luego veo como el compilador la tradujo al ensamblador y por ahí me guío.

Salu2
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: numero par o impar
« Respuesta #4 en: 10 de Septiembre de 2006, 12:43:58 »
saludos, en ccs también existe una funcion de testeo de Bits (talvez sirva):

bit_test(var,bit); // var: variable de 8, 16 ó 32 bits; bit: numero de bit testeado 0 es LSB

que devuelve un '0' ó '1' segun corresponda, entonces podrias hacer algo asi como en assembler, talvez:

if(bit_test(var,0)==0)
  printf("Numero par\n");
else
  printf("Numero impar\n");
.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: numero par o impar
« Respuesta #5 en: 17 de Octubre de 2006, 21:03:54 »
Hace -1 elevao a ese numero. Si el resultado es 1 es par, sino impar
« Última modificación: 17 de Octubre de 2006, 21:05:26 por aripod »