THIS CODE WORKS CAN SOMEONE MODIFY IT TO LOOK A LITTLE DIFFE
Solution
c program for halfadder and fulladder
#include<stdio.h>
typedef char bit;
bit bit_carry = 0;
bit halfadder( bit A, bit B ){
bit_carry = A & B;
return A ^ B;
}
bit fulladder( bit A, bit B ){
bit xor = A ^ B;
bit result = bit_carry ^ xor;
bit_carry = (bit_carry & xor) | (A & B);
return result;
}
void fillNumber( int number, bit *array ){
int i;
for( i = 0; i < 32; ++ i ){
array[i] = ( number >> i ) & 1;
}
}
int main(){
bit number1[32] = {0}, number2[32] = {0};
int A = 64620926, B = 1531529858;
fillNumber( A, number1 );
fillNumber( B, number2 );
int x = 0;
bit tmp_result = halfadder( number1[0], number2[0] );
putchar( tmp_result ? \'1\' : \'0\' );
x = tmp_result;
int i;
for( i = 1; i < 32; ++i ){
tmp = fulladder( number11[i], number22[i] );
x += tmp_result << i;
putchar( tmp_result ? \'1\' : \'0\' );
}
putchar( bit_carry ? \'1\' : \'0\' );
printf(\"\ %d\ \ %d + %d = %d\", x, A, B, A+B);
return 0;
}
