C Program to Find Ones Complement of a Binary Number

  • Write a C program to read a binary number and print its ones complement.
  • Wap in C to find ones complement of a binary number.

Required Knowledge

  • C printf and scanf functions
  • If Else ladder in C
  • For loop in C

Algorithm to find ones complement of a binary number

  • To find the ones complement of a number, we will toggle the bits of the number. Change all 1’s to 0’s and all 0’s to 1’s.

For Example :

Binary Number = 00101011
Ones Complement = 11010100

C program to find ones complement of a number

C program to find ones complement of a number

#include <stdio.h>  
#include <string.h>  
   
int main() {
    char binaryNumber[100], onesComplement[100];  
    int counter, error=0, digitCount;  
   
    /*
     * Take a binary string as input from user
     */
    printf("Enter a Binary Number\n");  
    scanf("%s", binaryNumber);  
   
    /* 
     * To get one's complement, we toggle 
     * 1's to 0's and 0's to 1's
     */
    digitCount = strlen(binaryNumber);
     
 for(counter=0; counter < digitCount; counter++) {  
        if(binaryNumber[counter]=='1') {  
            onesComplement[counter] = '0';  
        } else if(binaryNumber[counter]=='0') {  
            onesComplement[counter] = '1';  
        } else {  
            printf("Error :( ");  
            return 1;
        }  
    }  
    onesComplement[digitCount] = '\0';
       
    printf("Ones Complement : %s", onesComplement);  
   
    return 0;  
}

Output

Enter a Binary Number
11110010101
Ones Complement : 00001101010
Enter a Binary Number
10001111
Ones Complement : 01110000