#include <stdio.h>
#include <math.h>
long long convertDecimalToBinary(int n);
int main()
{
int n;
printf("Enter a decimal number: "); printf("%d in decimal = %lld in binary", n
, convertDecimalToBinary
(n
)); return 0;
}
long long convertDecimalToBinary(int n)
{
long long binaryNumber = 0;
int remainder, i = 1, step = 1;
while (n!=0)
{
remainder = n%2;
printf("Step %d: %d/2, Remainder = %d, Quotient = %d\n", step
++, n
, remainder
, n
/2); n /= 2;
binaryNumber += remainder*i;
i *= 10;
}
return binaryNumber;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CmxvbmcgbG9uZyBjb252ZXJ0RGVjaW1hbFRvQmluYXJ5KGludCBuKTsKCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBwcmludGYoIkVudGVyIGEgZGVjaW1hbCBudW1iZXI6ICIpOwogICAgc2NhbmYoIiVkIiwgJm4pOwogICAgcHJpbnRmKCIlZCBpbiBkZWNpbWFsID0gJWxsZCBpbiBiaW5hcnkiLCBuLCBjb252ZXJ0RGVjaW1hbFRvQmluYXJ5KG4pKTsKICAgIHJldHVybiAwOwp9Cgpsb25nIGxvbmcgY29udmVydERlY2ltYWxUb0JpbmFyeShpbnQgbikKewogICAgbG9uZyBsb25nIGJpbmFyeU51bWJlciA9IDA7CiAgICBpbnQgcmVtYWluZGVyLCBpID0gMSwgc3RlcCA9IDE7CgogICAgd2hpbGUgKG4hPTApCiAgICB7CiAgICAgICAgcmVtYWluZGVyID0gbiUyOwogICAgICAgIHByaW50ZigiU3RlcCAlZDogJWQvMiwgUmVtYWluZGVyID0gJWQsIFF1b3RpZW50ID0gJWRcbiIsIHN0ZXArKywgbiwgcmVtYWluZGVyLCBuLzIpOwogICAgICAgIG4gLz0gMjsKICAgICAgICBiaW5hcnlOdW1iZXIgKz0gcmVtYWluZGVyKmk7CiAgICAgICAgaSAqPSAxMDsKICAgIH0KICAgIHJldHVybiBiaW5hcnlOdW1iZXI7Cn0=
Enter a decimal number: Step 1: 56/2, Remainder = 0, Quotient = 28
Step 2: 28/2, Remainder = 0, Quotient = 14
Step 3: 14/2, Remainder = 0, Quotient = 7
Step 4: 7/2, Remainder = 1, Quotient = 3
Step 5: 3/2, Remainder = 1, Quotient = 1
Step 6: 1/2, Remainder = 1, Quotient = 0
56 in decimal = 111000 in binary