在C ++中将小数转换为二进制数
在本教程中,我们将讨论将小数转换为二进制数的程序。
为此,我们将提供一个小数部分和整数“k”。我们的任务是将给定的十进制小数转换为其二进制等效值,直到十进制精度的给定“k”位数。
示例
#include<bits/stdc++.h>
using namespace std;
//将十进制转换为二进制数
string convert_tobinary(double num, int k_prec) {
string binary = "";
//得到整数部分
int Integral = num;
//得到小数部分
double fractional = num - Integral;
//将整数转换为二进制
while (Integral) {
int rem = Integral % 2;
binary.push_back(rem +'0');
Integral /= 2;
}
//反转字符串以获得
//所需的二进制数
reverse(binary.begin(),binary.end());
binary.push_back('.');
//将分数转换为二进制
while (k_prec--) {
fractional *= 2;
int fract_bit = fractional;
if (fract_bit == 1) {
fractional -= fract_bit;
binary.push_back(1 + '0');
} else
binary.push_back(0 + '0');
}
return binary;
}
int main() {
double n = 4.47;
int k = 3;
cout << convert_tobinary(n, k) << "\n";
n = 6.986 , k = 5;
cout << convert_tobinary(n, k);
return 0;
}输出结果
100.011 110.11111
热门推荐
10 给老师祝福语简短元旦
11 幼儿节日祝福语大全简短
12 古风祝福语唯美简短亲情
13 毕业祝福语简短英语小学
14 良师益友祝福语简短
15 老婆生日祝福语短句简短
16 生日祝福语简短激励女生
17 日常祝福语简短语客户
18 兄弟的结婚祝福语简短