Wednesday, 10 April 2013

C Program To convert the given binary number to 2’s complement



To convert the given binary number to 2’s complement

#include <stdio.h>
#include<conio.h>

void complement (char *a);
void main()
{
 char a[16];
 int i;
            clrscr();
 printf("Enter the binary number");
 gets(a);
 for(i=0;a[i]!='\0'; i++)
 {
  if (a[i]!='0' && a[i]!='1')
  {
printf("The number entered is not a binary number. Enter the correct number");
   exit(0);
                            }     
            }
complement(a);
getch();           
}

void complement (char *a)
{
            int l, i, c=0;
            char b[16];
 l=strlen(a);
 for (i=l-1; i>=0; i--)
 {
  if (a[i]=='0')
  b[i]='1';                     

 else    
 b[i]='0';
 }
 for(i=l-1; i>=0; i--)
 {
 if(i==l-1)
 {
  if (b[i]=='0')
                                      b[i]='1';
                                     else
  {
   b[i]='0';                    
c=1;
  }
 }
 else
            {
                        if(c==1 && b[i]=='0')
                         {
                                    b[i]='1';                       
 c=0;
  }
 else if (c==1 && b[i]=='1')
 {
                                    b[i]='0';                       
 c=1;
 }
}
}
b[l]='\0';
printf("The 2's complement is %s", b);
}

No comments: