[英]Convert Fixed Point Decimal Number to Binary
我有将数字转换为二进制的代码,但无法弄清楚如何使它适用于定点十进制数字。 例如,如何转换一个数字,例如5.25
?
这是我现在拥有的代码:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> intVector;
int number, digit ;
int base ;
cout << "Enter a base: ";
cin >> base;
cout << "Enter a number: ";
cin >> number;
while(number > 0)
{
digit = number % base ;
intVector.push_back(digit) ;
number = number / base ;
}
while(!intVector.empty())
{
cout<<intVector.back() ;
intVector.pop_back();
}
return 0;
}
任何指针如何转换固定的十进制数字? 我需要它最多打印20个小数位。
您可以reinterpret_cast
您的浮点数地址reinterpret_cast
转换为char*
,然后手动逐个检查位,例如:
double number = 16.4566565776765;
char* fp = reinterpret_cast<char*>(&number);
for (std::size_t i = 0; i < sizeof(float); i++){
for (std::size_t j = 0; j < CHAR_BIT; j++){
intVector.push_back(fp[i] & (1<<j) ? 1 : 0);
}
}
注意:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.