二进制转换为十进制
#include <stdio.h>
#include <math.h>
int convertBinaryToDecimal(long n)
{
int decimalNumber = 0, i = 0, remainder;
while (n!=0)
{
remainder = n%10;
n /= 10;
decimalNumber += remainder*pow(2,i);
++i;
}
return decimalNumber;
}
int main()
{
long n;
printf("ÊäÈëÒ»¸ö¶þ½øÖÆÊý: ");
scanf("%ld", &n);
printf("¶þ½øÖÆÊý: %ld ת»»ÎªÊ®½øÖÆΪ: %d\r\n", n, convertBinaryToDecimal(n));
return 0;
}
十进制转换为二进制
#include <stdio.h>
#include <math.h>
long convertDecimalToBinary(int n);
int main()
{
int n;
printf("ÊäÈëÒ»¸öÊ®½øÖÆÊý: ");
scanf("%d", &n);
printf("Ê®½øÖÆÊý: %d ת»»Îª¶þ½øÖÆ: %ld\r\n", n, convertDecimalToBinary(n));
return 0;
}
long convertDecimalToBinary(int n)
{
long binaryNumber = 0;
int remainder, i = 1, step = 1;
while (n!=0)
{
remainder = n%2;
//printf("Step %d: %d/2, ÓàÊý = %d, ÉÌ = %d\n", step++, n, remainder, n/2);
n /= 2;
binaryNumber += remainder*i;
i *= 10;
}
return binaryNumber;
}