10进制小数转2进制小数C++
时间: 2023-08-05 22:06:01 浏览: 142
将10进制小数转换为2进制小数,可以使用C++中的除2取余法。下面是一个示例代码:
```c++
#include <iostream>
using namespace std;
string decimalToBinary(double decimal) {
string binary = "";
int intPart = (int)decimal;
double fracPart = decimal - intPart;
while (intPart > 0) {
binary = to_string(intPart % 2) + binary;
intPart /= 2;
}
binary += '.';
while (fracPart > 0) {
fracPart *= 2;
if (fracPart >= 1) {
binary += '1';
fracPart -= 1;
} else {
binary += '0';
}
}
return binary;
}
int main() {
double decimal = 0.625;
string binary = decimalToBinary(decimal);
cout << binary << endl;
return 0;
}
```
在上面的代码中,我们首先将10进制小数拆分为整数部分和小数部分。然后分别对整数部分和小数部分进行除2取余操作,得到二进制数的整数部分和小数部分。最后,将整数部分和小数部分拼接在一起,就得到了完整的2进制小数。
输出结果为:
```
0.101
```
需要注意的是,在C++中处理浮点数时存在精度问题,因此转换得到的二进制小数可能不是精确的。如果需要更高精度的计算,可以使用C++中的boost库或者自己实现高精度计算。
阅读全文