大家好,有人知道这代码该怎么弄吗 已经写出来了Decimal函数,但是我实在不知道如何调用Binary函数,也不是很能理解上面的代码。
#include "math.h"
#include "stdio.h"
#include "string.h"
int binary2Dec(char* b)
{
int s = 0, len = strlen(b);
for (int i = 0; i < len; i++)
{
if (b[i] == '1') s += pow(2, len - 1 - i);
}
return s;
}
int main()
{
char b[] = "1000";
int s = binary2Dec(b);
printf("%d\n", s);
return 0;
}
供参考:
#include<stdio.h>
#define FALSE 0
#define TRUE 1
long BinaryInput()
{
long binary = 0;
int i;
char s[16];
scanf("%s", s);
for (i = 0; s[i]; i++)
binary = binary * 10 + s[i] - '0';
return binary;
}
int isInputError(long binary)
{
while (binary) {
if (binary % 10 > 1)
return FALSE;
binary /= 10;
}
return TRUE;
}
long BinaryToDecimal(long n)
{
if (n == 1 || n == 0)
return n;
else
return BinaryToDecimal(n / 10) * 2 + n % 10;
}
int main(void)
{
long binary, decimal;
while (1)
{
binary = BinaryInput();
if (isInputError(binary) == FALSE) continue;
else {
decimal = BinaryToDecimal(binary);
break;
}
}
printf("二进制数%1d对应的十进制数是%d\n", binary, decimal);
return 0;
}