Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- void dec2bin(int num, int a[], int *n){
- int i=0;
- while(num!=0){
- a[i++] = num % 2 ;
- num /= 2;
- }
- *n = i;
- }
- int bin2dec(int a[], int n){
- int i=0, lthua=1, result=0;
- for(i=0;i<=n;i++){
- result += a[i] * lthua;
- lthua *= 2;
- }
- return result;
- }
- int main(){
- int a[100], b[100], num1, num2, n, m, i, k;
- printf("Nhap so 1: ");
- scanf("%d",&num1);
- printf("Nhap so 2: ");
- scanf("%d",&num2);
- dec2bin(num1,a,&n);
- dec2bin(num2,b,&m);
- if(n<m){
- k = m;
- for(i=n;i<=k;i++)
- a[i]=0;
- b[i-1] = 0;
- }else
- if(n>m){
- k = n;
- for(i=m;i<=k;i++)
- b[i]=0;
- a[i-1] = 0;
- }else{
- k = m;
- a[k] = b[k] = 0;
- }
- int sum[100], carry=0;
- for(i=0;i<=k;i++){
- sum[i] = (a[i] ^ b[i] ) ^ carry;
- carry = (((a[i] ^ b[i]) & carry) | (a[i] & b[i]));
- }
- printf("\n%4d = ",num1);
- for(i=k;i>=0;i--)
- printf("%d ",a[i]);
- printf("\n%4d = ",num2);
- for(i=k;i>=0;i--)
- printf("%d ",b[i]);
- printf("\n -----------------");
- printf("\n%4d = ",bin2dec(sum,k));
- for(i=k;i>=0;i--)
- printf("%d ",sum[i]);
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement