二进制小数转十进制小数C++
时间: 2023-09-01 17:12:56 浏览: 261
C++ 二进制转十进制
5星 · 资源好评率100%
二进制小数转十进制小数的方法如下:
1. 将二进制小数的整数部分和小数部分分开。
2. 将二进制小数的整数部分转换为十进制数。
3. 将二进制小数的小数部分转换为十进制数。
4. 将整数部分和小数部分的十进制数相加即可得到十进制小数。
下面是一个用C语言实现的二进制小数转十进制小数的代码示例:
```c
#include <stdio.h>
#include <math.h>
double binaryToDecimal(char binary[])
{
int integerPart = 0;
double decimalPart = 0.0;
int i, j;
for(i = 0; binary[i] != '.' && binary[i] != '\0'; i++) {
integerPart = integerPart * 2 + (binary[i] - '0');
}
if(binary[i] == '.') {
i++;
for(j = 1; binary[i] != '\0'; i++, j++) {
decimalPart += (binary[i] - '0') * pow(2, -j);
}
}
return integerPart + decimalPart;
}
int main()
{
char binary[] = "1011.101";
double decimal = binaryToDecimal(binary);
printf("%s in binary is %f in decimal.\n", binary, decimal);
return 0;
}
```
输出:
```
1011.101 in binary is 11.625000 in decimal.
```
在这个示例中,我们传入一个二进制小数字符串,将整数部分和小数部分分离并转换为十进制数,最后将它们相加得到十进制小数。注意,这个示例只支持小数点后面最多有6位小数。如果需要更高精度的计算,需要使用更复杂的算法。
阅读全文