Par, Impar, Cero

Este código lo que realiza, es detectar, si el número introducido por pantalla, es par, impar o cero. Lo presenta en forma de un byte, utilizando los bits, como flags para indicar el tipo de número.

#include
#include
#include



int main(void)
{
int numero, paridad,alu,peso;
char cero, positividad;
printf("Ingrese un numero entero:");
scanf("%d",&numero);
if (numero==0)
{
cero=(char)0X2;//Obtiene cero=0x4 o no cero=0x0.
}
else
{
paridad=(char)numero&1; //Obtiene paridad par=0x0, impar=0x1.
if(numero>=0)
{
positividad=(char)0;//Obtiene positivo=0x0.
}
else
{
positividad=(char)0X4;//Obtiene negativo=0x10.
}
}
alu=cero+positividad+paridad;//Junta la información en un byte para la alu.
for (peso=128;peso!=0;peso>>=1)//Lo traduce a binario.
{
if (peso<=alu)//pregunta por el orden de pesos de los caracteres.
{
printf("1");//imprime un 1 si el peso corresponde.
alu=alu-peso;//disminuye el peso para la próxima evaluación.
}
else
{
printf("0");//si el 1 no corresponde rellena con 0.
}
}
printf("\n");
printf("1er bit: par=0 impar=1\n");
printf("2do bit cero: v=1 f=0\n");
printf("3er bit: 0>=0 0<=1\n");
printf("\n");

system("PAUSE");
return EXIT_SUCCESS;
}
//1er bit: par=0 impar=1
//2do bit cero: v=1 f=0
//3er bit: 0>=0 0<=1

0 comentarios:

Publicar un comentario

Si llegaste hasta acá y no lo encontraste lo que necesitás intentá buscarlo: