02/02/2010, 18:26
|
| | Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 17 años, 2 meses Puntos: 0 | |
Respuesta: Leer número entero en binario Aqui tienes una posible solucion....
Solo te suma numeros predefinidos, pero no te costará mucho adaptarlo a sumas complejas! ;)
Saludos
Código:
//Programa que suma dos numeros binarios. Se tiene en cuenta el overflow y con un maximo de 6 bits.
//Autores: Carlos Beneyto y Santi Alex
#include <stdio.h>
int vector_resultado[7];
int vector1[7]={0,0,0,0,1,0,1};
int vector2[7]={0,0,0,0,1,0,1};
int acarreo=0, i; //Variable de Acarreo, suma el acarreo en el siguiente digito
main()
{
printf("Sumar dos numeros binarios 5 (000101)\n");
printf("\t\n000101");
printf("\t\n+");
printf("\t\n000101");
printf("\t\n-------\n");
/*Bucle que recorre el vector, sumando digito a digito, desde el ultimo numero del vector,
pues la suma se hace de derecha a izquierda, para tener en cuenta el acarreo*/
for(i=6; i>=0; i--)
{
//Acarreo: Cambia el valor del resultado, sumando el acarreo en el siguiente valor.
vector_resultado[i]=vector_resultado[i]+acarreo;
acarreo=0;
vector_resultado[i]=vector1[i]+vector2[i]+vector_resultado[i];
//Si el resultado es la suma de 1+1, cambia el resultado a 0 y cambia la veriable acarreo a 1.
if(vector_resultado[i]==2) { vector_resultado[i]=0; acarreo=1; }
}
//En caso de que haya overflow, escribe el numero en 7 bits
if(vector1[1] && vector2[1] == 1) {
printf("\n(!) Hay Overflow, el resultado es de 7 bits\n\n");
printf("%d%d%d%d%d%d%d", vector_resultado[0],vector_resultado[1],vector_resultado[2],vector_resultado[3],vector_resultado[4],vector_resultado[5],vector_resultado[6]);
printf("\n\n");
}
else {
printf("%d%d%d%d%d%d", vector_resultado[1],vector_resultado[2],vector_resultado[3],vector_resultado[4],vector_resultado[5],vector_resultado[6]);
printf("\n\n");
}
}
__________________ ---> Webnox.es |