大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
今天在学习十进制与二进制的相互转换,学到小数的十进制转换到二进制时,所以我想着能不能用我这菜鸡技术,利用C++来实现只把十进制小数转换成二进制。
【思路】
- 输入要计算的二进制小数部分 “decimals” 以及要计算出的二进制位数
- 循环 while() 部分
● 进行小数 * 2 的运算,只输出整数部分(获得二进制数值),这部分利用了 floor() 函数,它会返回比参数小的最大整数
● 把整数部分赋值到 “integer”
● 用包含了整数与小数的数值减去整数部分,这样就获得了只存在小数部分的数值 - 利用 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;
}
个人博客:http://www.juepo.cn/(抉破网)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193597.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...