当前位置: 首页 > news >正文

十进制小数转换为二进制表示 ← 除2取余法+乘2取整法

【算法分析】
● 如下代码首先分离整数和小数部分,整数部分通过
除 2 取余法转换,小数部分通过乘 2 取整法转换。最多保留 32 位小数精度。
● 命令
(int)num 将浮点数 num 强制转换为整数。

【算法代码】

#include <bits/stdc++.h>
using namespace std;string decimalToBinary(double num) {//intPartint intPart=(int)num;string intBinary;while(intPart>0) {intBinary+=(intPart%2)+'0';intPart/=2;}reverse(intBinary.begin(), intBinary.end());//fracPartdouble fracPart=num-(int)num;string fracBinary;while(fracPart>0) {if(fracBinary.length()>=32) break;fracPart*=2;if(fracPart>=1) {fracBinary+='1';fracPart-=1;} else fracBinary+='0';}return intBinary+(fracBinary.empty()?"" : "."+fracBinary);
}int main() {double num;cin>>num;cout<<decimalToBinary(num)<<endl;return 0;
}/*
in:123.456
out:1111011.01110100101111000110101001111110
*/




【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/149136573
https://blog.csdn.net/hnjzsyjyj/article/details/146247521




 

http://www.dtcms.com/a/292797.html

相关文章:

  • csp基础知识——递推
  • SMTP+VRRP实验
  • Markdown 转 PDF API 数据接口
  • REASONING ELICITATION IN LANGUAGE MODELSVIA COUNTERFACTUAL FEEDBACK
  • 高性能线程安全的时间有序 UUID 生成器 —— 基于 ThreadLocal 的实现
  • 实操:AWS CloudFront的动态图像转换
  • Cadence 原理图如何给网络名称添加页码
  • 『React』条件渲染的7种方法
  • 基于Prompt 的DevOps 与终端重塑
  • 装备数字孪生底座平台探索
  • HTTP 协议常见字段(请求头/响应头)
  • 虚幻5入门教程:如何在虚幻5中创建一个C++的Plugin
  • android 12 的 aidl for HAL 开发示例
  • VR技术在元宇宙游戏中的作用及发展前景深度分析
  • Fluent许可与网络安全策略
  • 基于JSP的快递管理系统/快递寄出管理系统
  • 初识opencv01——基本api操作
  • Transactional事务不生效案例与解决方案?
  • 基于深度学习Transform的steam游戏特征分析与可视化【词云-情感词典分析-主题分析-词频分析-关联分析】
  • Android 自动的文件管理器存在以下问题,文件管理器横竖屏切换会停止运行,如何解决
  • 多维基分析求导法则
  • DNS应用层协议
  • OEC 刷机Armbain 25.05后配置说明
  • Vue3中watch和watchEffect区别和用法
  • 安装UV(一个python工具)
  • C语言符号可见性控制与工程实践——深入理解 __attribute__((visibility)) 和 -fvisibility=hidden
  • 【bug】Yolo11在使用tensorrt推理numpy报错
  • 在线教育培训课程视频如何防下载、防盗录?
  • Java(LinkedList和ArrayList底层分析)
  • UML中的多重性详解