所以我设计了一个算法来接收一个 32 位的 char 数组,并将其转换为适当的十进制等价物。
double calculateDecimal(char *string){
char *temp=string;
double total=0;
int i;
int count=31;
int x=pow(2,count);
for(i=0;i<32;i++){
if(!strncmp(temp,"1",1){
printf("%d + %d\n",x,total);
total+=x;
}
temp++;
count--;
x=pow(2,count);
}
printf("%d\n",total);
return total;
}
1)我的 printf 语句已经证明正在读取正确的 1 并且正在计算它们的正确功率。我发现的是总和 x 一直等于我感到困惑的相同功率,因为我正处于风口浪尖上。
2)我的示例计算是 00000000100000010000000000000111,如果我输入正确应该是 84554151 的十进制等值。感谢您的任何贡献,因为我知道我很接近。