二进制到十进制

时间:2014-09-05 20:26:05

标签: c

该程序假设将二进制数转换为十进制数。仅使用scanf()printf()库函数。从用户接收char array ---没有提示输出小数形式,必须在转换结果必须在main中打印出来后,函数必须与参数(char binaryString[])一起使用。程序不起作用我不认为我在函数binaryToDecimal中正确地将二进制形式转换为十进制形式,因为我无法使用pow()我失去了

#include <stdio.h>
#include <math.h>

int binaryToDecimal(char binaryString[]) {    
    int c, j = 1, decimalNumber = 0;

    for (binaryString[c = 0]; binaryString[c] > binaryString[33];
         binaryString[++c]) {

        while (binaryString[c] != 0) {
            remainder = binaryString[c] % 10;
            decimalNumber = decimalNumber + remainder * j;
            j = j * 2;
            binaryString[c] = binaryString[c] / 10;
        }
    }
    return decimalNumber;
}

int binaryToDecimalMain() {
    int arraysize = 33;
    char binaryString[arraysize];
    scanf("%32s", binaryString);
    printf("%d",binaryToDecimal(binaryString []);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

我没有给你算法,因为它似乎是你正在学习如何编程,你学会发现如何解决给你的问题是很重要的。但我可以给你一些提示:

  • 仅使用binaryString与&#39; 0&#39;或者&#39; 1&#39;。不要尝试进行任何操作,例如&#39;%&#39;在它上面。
  • 逐个字符地迭代binaryString(while内没有for [这只适用于这种情况,有一些算法是做这样的事情所必需的])
  • 您的转换逻辑是在正确的轨道上

此外,您应该调用主要功能main