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