# C program to find Binary Addition and Binary Subtraction

Binary addition/subtraction is similar to regular (daily life) addition/subtraction, but here addition/subtraction performs only two digits those are 0 and 1, these are binary digits hence such kind of addition/subtraction is called binary addition/subtraction.

Take two numbers, suppose numbers are 10 and 20 their binaries are 1010 and 10100.

```In binary addition
0+0	=	0
0+1	=	1
1+0	=	1
1+1	=	0	(1 carries out)
10	=	0 1 0 1 0
20	=	1 0 1 0 0
=	1 1 1 1 0
=	30
```

Example of Binary Subtraction:

Take two numbers, suppose numbers are 20 and 10 their binaries 10100 and 1010.

```In binary subtraction
0-0	=	0
1-0	=	1
0-1	=	1	(1 borrows out)
1-1	=	0

Now sub 10 from 20
20	=	1 0 1 0 0
10	=	0 1 0 1 0
=	0 1 0 1 0
=	10
```

Consider the example:

```#include <stdio.h>

{
int c; //carry
while (b != 0) {
//find carry and shift it left
c = (a & b) << 1;
//find the sum
a = a ^ b;
b = c;
}
return a;
}

// function for Binary Subtraction
int binSubtracton(int a, int b)
{
int carry;
//get 2's compliment of b and add in a

while (b != 0) {
//find carry and shift it left
carry = (a & b) << 1;
//find the sum
a = a ^ b;
b = carry;
}
return a;
}

int main()
{

printf("Input first integer value: ");
scanf("%d", &number1);

printf("Input second integer value: ");
scanf("%d", &number2);

binSub = binSubtracton(number1, number2);

printf("Binary Subtraction: %d\n", binSub);

return 0;
}
```

Output:

```    Input first integer value: 30
Input second integer value: 5
Binary Subtraction: 25
```