Selasa, 25 Maret 2014

3.36 (Printing the Decimal Equivalent of a Binary Number)

Input an integer containing only 0s and 1s (i.e., a “binary” integer) and print its decimal equivalent. [Hint: Use the remainder and division operators to pick off the “binary” number’s digits one at a time from right to left. Just as in the decimal number system, in which the rightmost digit has a positional value of 1, and the next digit left has a positional value of 10, then 100, then 1000, and so on, in the binary number system the rightmost digit has a positional value of 1, the next digit left has a positional value of 2, then 4, then 8, and so on. Thus the decimal number 234 can be interpreted as 4 * 1 + 3 * 10 + 2 * 100. The decimal equivalent of binary 1101 is 1 * 1 + 0 * 2 + 1 * 4 + 1 * 8 or 1 + 0 + 4 + 8 or 13.]

C Program: 
#include <stdio.h>
 

int binary_conversion(int);

int main()

{

   int num, bin;

   printf("Enter a decimal number: ");

   scanf("%d", &num);

   bin = binary_conversion(num);

   printf("The binary equivalent of %d is %d\n", num, bin);

   system("pause");

}

 

int binary_conversion(int num)

{

    if (num == 0)

    { return 0; }

    else

    { return (num % 2) + 10 * binary_conversion(num / 2);  }

}
Output:

0 komentar:

Posting Komentar