十进制的小数转换为二进制

今天在学习十进制与二进制的相互转换,学到小数的十进制转换到二进制时,所以我想着能不能用我这菜鸡技术,利用C++来实现只把十进制小数转换成二进制。

【思路】

  1. 输入要计算的二进制小数部分 “decimals” 以及要计算出的二进制位数
  2. 循环 while() 部分
  • 进行小数 * 2 的运算,只输出整数部分(获得二进制数值),这部分利用了 floor() 函数,它会返回比参数小的最大整数
  • 把整数部分赋值到 “integer”
  • 用包含了整数与小数的数值减去整数部分,这样就获得了只存在小数部分的数值
  1. 利用 if() 函数,当小数部分为0时停止运算

【代码部分】

#include <iostream>
using namespace std;

int main()
{
	double decimals= 0; //decimals 小数
	int integer,time,a = 1; //interger 整数  time 循环次数  a 初始值
	cout << "请输入要计算的二进制小数部分"<< endl;
	cin >> decimals;
	cout << "想要算出的位数:";
	cin >> time;

	while (a <= time) {
		decimals = decimals * 2;//进行小数运算
		cout << a <<"---"<< floor(decimals) <<endl; //输出整数部分
		integer = floor(decimals); //获得整数部分
		decimals = decimals - integer; //去除整数部分
		a++;

		if(decimals == 0){
			return 1; //当小数部分为0时停止运算
		}
	}
	return 0;
}

 

皖ICP备 16009253号