# Program to find 1's complement of a binary number in C++

Problem –  Binary Number as a string, we have to print its 1’s complement.

1’s complement of a binary number is another binary number obtained by transforming all the 0 bit to 1 and the 1 bit to 0.

Example:

Input: 101010

One’s complement the number: 010101

### Algorithm:

1. Take binary number input as a string, having a length of `size`.
2. Initialize `int fail=0`.
3. Start a loop from `i = 0` to `i<size`.
4. Inside the loop, check if the character at the current index `i` is '0' or '1'. If it is '0', assign '1' to the corresponding index in the complement string. If it is '1', assign '0' to the corresponding index in the complement string.
5. If the character at the current index `i` is not '0' or '1', print an error message and set `fail = 1`.
6. If `fail` is still 0 after the loop, print the ones complement.

### Code:

``````#include <iostream>
#define size 6
using namespace std;

int main() {
int i, fail = 0;
char binary[size + 1], comp[size + 1];
cout << "Input a " << size << " bit binary number: ";
cin >> binary;
for (i = 0; i < size; i++) {
if (binary[i] == '1') {
comp[i] = '0';
}
else if (binary[i] == '0') {
comp[i] = '1';
}
else {
cout << "Error! Input the number of assigned bits." << endl;
fail = 1;
break;
}
}
comp[size] = '\0';
if (fail == 0) {
cout << "The original binary number = " << binary << endl;
cout << "Ones complement the number = " << comp << endl;
}
}

``````

Output

``````Input a 6 bit binary number: 101101
The original binary number = 101101
Ones complement the number = 010010

Input a 6 bit binary number: 10101
Error! Input the number of assigned bits.

``````