In this article we will learn to implement a C program to find 2’s complement of a binary number. A C program is provided below which reads a binary number and prints its 2’s complement.
Program is as follows:
//C program to find the 2's complement of a given binary number
#include<stdio.h>
#include<conio.h>
void main()
{
int n, a[10], i;
bool flag = false;
printf("Enter number of binary numbers: ");
scanf("%d",&n);
printf("Enter %d binary numbers:", n);
for(i=0;i<n;i++)
{
scanf("%d", &a[i]);
}
//Scanning from right side i.e from last entered binary number
for(i=n-1;i>=0;i--)
{
if(a[i]==1 && flag==false)
{
flag = true;
continue;
}
if(a[i]==0 && flag==false)
{
continue;
}
if(a[i]==1)
a[i]=0;
else
a[i]=1;
}
printf("2's complement is: ");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
getch();
}
Input and output for the above program is as follows:
Enter number of binary numbers: 6
Enter 6 binary numbers:1 0 0 0 1 1
2's complement is: 0 1 1 1 0 1
Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.
He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.
He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.
Leave a Reply