COMPLEMENTO A 1 Y 2 EN C.
Enviado por Alex Nájera • 11 de Septiembre de 2016 • Práctica o problema • 1.253 Palabras (6 Páginas) • 231 Visitas
/*PROGRAMA REALIZADO POR
CIENFUEGOS ZEPEDA JESUS
GONZALEZ ROJO IRVIN
NAJERA ARAOZ ALEJANDRO
ROSALES GOMEZ EFREN ALDAIR
*/
#include
#include
#include
#include
//Este programa reliza el C1 y C2 de un numero entero
//Lenguajes de programacion
char *ConvertirBinario(char *cadena, char caracter);
char *complemento_dos(char *c1,char i,int longitud, int tamanio);
main() {
int complemento,numero, longitud, i, x, y, n = 8;
char *binario ="" ;
char *c1, *c2;
printf("Introduce un numero entero:");
scanf("%d", &numero);
x = numero;
printf("\nNumero entero:%d ",numero);
if (numero > 0)
{
//Rutina para convertir en binario//
//Mientras el numero no llegue a 0//
while (numero > 0)
{
//Si el cociente del numero es igual a CERO//
//Es el numero que se enviara a la funcion para ser el primero en concatenar//
if (numero%2 == 0)
{
char c = '0';
binario = ConvertirBinario(binario, c);
}
//Si el cociente es UNO//
//Es el numero que se enviara a la funcion para ser el primero en concatenar//
else
{
char c = '1';
binario = ConvertirBinario(binario, c);
}
//Condicion a evaluar, se repite hasta que sea falso en el loop while//
numero = (int) numero/2;
}
}
else if (numero == 0)
{ //Significa que el numero introducido es 0 por lo tanto su valor es el mismo en binario//
binario = "0";
}
else
{ //Caso en el que el numero es negativo//
//Como la variable "binario" es char se puede almacer como aqui abajo//
binario = "No se pudo convertir el numero. Ingrese solo numeros positivo";
}
printf("Binario: %s\n",binario);
//************COMPLEMENTO A UNO**********************//
longitud = strlen(binario); //Esto es para saber cuantos bits tiene el binario//
c1 = (char*)malloc(sizeof(char)*longitud); //Ya que se sabe el numero de bits, se asigna el mismo espacio...// //de bits para hacer el complemento a uno//
...