Find two's complement of a binary number
Sample Output
Enter binary number: 01101110 One's Complement: 10010001 Two's Complement: 10010010
Source Code
// Find two's complement of a binary number
#include<stdio.h>
#include<string.h>
int main()
{
int i, bin_length;
char carry = '1', binary_number[100], ones_comp[100], twos_comp[100];
input:
printf("Enter binary number: ");
scanf("%s", binary_number);
// Length of binary_number string
for(i = 0; binary_number[i] != '\0'; i++);
bin_length = i;
for(i = 0; i < bin_length; i++)
{
if(binary_number[i] == '0')
{
ones_comp[i] = '1';
}
else if(binary_number[i] == '1')
{
ones_comp[i] = '0';
}
else
{
printf("Unexpected character! Please enter a valid input...\n\n");
goto input;
}
}
ones_comp[i] = '\0'; // End of string
for(i = (bin_length - 1); i >= 0; i--)
{
if(ones_comp[i] == '1' && carry == '1')
{
twos_comp[i] = '0';
}
else if(ones_comp[i] == '0' && carry == '1')
{
twos_comp[i] = '1';
carry = '0';
}
else if(carry == '0')
{
twos_comp[i] = ones_comp[i];
}
}
printf("\nOne's Complement: %s\nTwo's Complement: %s\n\n", ones_comp, twos_comp);
return 0;
}
Sample Output
Enter binary number: 00010100 One's Complement: 11101011 Two's Complement: 11101100
No comments:
Post a Comment