我们常见的是纯整数十进制转二进制,而对小数部分的转换不常提及。以下帮助大家梳理
(xxx.yyy)10xxx为整数部分,yyy为小数部分(xxx.yyy)_{10}\\ xxx为整数部分,yyy为小数部分 (xxx.yyy)10​xxx为整数部分,yyy为小数部分
核心思想:将整数和小数部分分开计算,最后整合。

  1. 对于整数:除二逆向取余
  2. 对于小数部分:乘二正向(向下)取整

(一)整数部分
以34举例

图中每个小箭头代表一次除2
34=17x2+0
17=8x2+1
…以此类推
最后逆向读出。故(34)10(34)_{10}(34)10​=(100010)2(100010)_2(100010)2​
(二)小数部分
以0.625举例

图中每个小箭头代表两个操作:
A→\rightarrow→B

  1. Ax2
  2. B= A-⌊A⌋\lfloor A \rfloor⌊A⌋

0.25=0.625*2=1.25-⌊1.25⌋\lfloor 1.25 \rfloor⌊1.25⌋ =0.25 (⌊1.25⌋\lfloor 1.25 \rfloor⌊1.25⌋=1)

0.5=0.25*2=0.5-⌊0.5⌋\lfloor {0.5} \rfloor⌊0.5⌋=0.5(⌊0.5⌋\lfloor {0.5} \rfloor⌊0.5⌋=0)

最后正向读出。故(0.625)10=(.101)2(0.625)_{10}=(.101)_2(0.625)10​=(.101)2​

若嫌式子过于复杂,可以这么记忆:
小数部分乘2,若>1,则减去1,在旁边记录下1;
若小于1,则无需减去1,在旁边记录下0;
使其一直为0.xx的形式,如此往复

特别的:小数部分转二进制可能会出现乘不尽,一直不能化为0。此时根据题目要求的精度来决定要多少位二进制即可。

整合
那么34.625的二进制表述就是将其拼接起来
(34.625)10=(100010.101)2(34.625)_{10}=(100010.101)2(34.625)10​=(100010.101)2

带小数十进制转二进制--图解相关推荐

  1. C语言之用递归进行十进制转二进制(图解)

    文章目录 前言 一.用二整除法 1.原理(图解) 如图: 2.使用图片 3.代码 二.对照表比较法 1.原理(图解) 如图: 2.使用图片 3.代码 总结 前言 在学习算法的过程中,我们会遇到如何把十 ...

  2. 当小数遇上二进制——全面解析JS中的小数二进制计算(附赠0.1+0.2 !== 0.3问题解释)

    二进制小数如何转换为十进制 二进制转换十进制的方法是: 从二进制数的最低位开始,每一位乘以对应的2的幂数,然后将最终的结果小数部分与整数部分分别相加 对应的2的幂,以个位为0,向高位依次增1,向地位依 ...

  3. 十进制与二进制相互转换

    十进制转二进制 这方法叫 除2取余,逆序排列 法: 例如,现在要将20转为二进制,那么我们的运算逻辑是: 20 % 2 = 10 余 0 10 % 2 = 5 余 0 5 % 2 = 2 余 1 2 ...

  4. C语言实现二进制与十进制的互转(带小数)

    直接用C语言实现,没有数据结构 需要看栈和队列版的看这里 C语言使用栈和队列实现二进制与十进制的互转(带小数) 代码 #include <stdio.h> #include <std ...

  5. 十进制小数或带小数的十进制转二进制--控制小数位数输出(C语言)

    十进制小数或带小数的十进制转二进制: 十进制小数转换成二进制小数采用"乘2取整,顺序排列"法.具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分 ...

  6. 小数转换成二进制c语言,只写出了十进制小数转换成二进制的,求二进制小数转十进制的...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #define NUM 2 #define ZERO 0.000001 int PrnMainMen ...

  7. 小数的十进制转二进制

    小数的十进制转二进制 小数点之后用乘2取整法: 如0.5(D) = 0.1(B).        按照如下计算方法: 1. 首先给小数部分乘2,如果小数点前为 1则记1;为0,则记0: 2. 在对剩下 ...

  8. 十进制转换二进制方法总结(整数小数)

    整数十进制转二进制 键盘获取一个整数赋值给n,调用Interger的toString方法,打印n的二进制输出形式. import java.util.Scanner; public class 二进制 ...

  9. c++将十进制转换为二进制 小数_二进制、八进制、十六进制与转换

    将二进制.八进制.十六进制转换为十进制 二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权". ...

最新文章

  1. MySQL 删除字段数据某关键字后的所有数据
  2. 在Windows下如何安装Tomcat服务器搭建
  3. 回顾小程序2018年三足鼎立历程,2019年BAT火力全开
  4. 疑似禁令影响开始显现:华为Mate 40量产或被迫推迟
  5. JavaScript 图片切割效果(带拖放、缩放效果)
  6. linux 找不到libaio.h,POSIX AIO和Linux上的libaio之间的区别?
  7. mysql bcnf_bcnf范式
  8. 用C++做的文本分割器(就是黑乎乎的那个)
  9. php 更改发送ip,PHP重新启动路由器以更改IP地址程序
  10. hdu 4622 Reincarnation(SAM)
  11. Progressive LayeredExtraction(PLE):ANovelMulti-Task Learning(MTL)ModelforPersonalizedRecommendations
  12. 分布式原理:一文了解 Gossip 协议
  13. bzoj3998/洛谷3975 [TJOI2015]弦论 (后缀自动机)
  14. android手机采集,Android手机直播之采集技术分析
  15. 51单片机ADC0832模数转换+ LCD1602显示+Proteus仿真
  16. 快速删除oracle中重复数据,效率高于直接删除数倍.
  17. 1688以图搜货接口,1688图片搜索接口,拍立淘接口,以图搜商品接口,图片上传搜索商品接口,按图搜索接口代码对接参数说明
  18. import 和 from … import 模块的变量、方法引用差异
  19. 物理竞赛计算机,通过全国中学生物理竞赛,保送清华大学的学霸,读的是哪些专业?...
  20. pandas分组计算平均值_python – Pandas:如何按符号分组并按n行取平均值

热门文章

  1. 让人哀惋叹息的荷兰人
  2. UVALive 7139 Rotation 二维vector+矩阵前缀和 【模版】
  3. VMware虚拟机连接摄像头方法
  4. 责任链模式——分离职责,动态组合
  5. Python的初步认知与安装步骤 (小白必备)
  6. 逆战d3dx10_43.dll文件加载失败及dll文件缺失损坏修复解决方案
  7. 0604课的预习任务 + 课堂笔记
  8. css-alert-demo
  9. PL/SQL Developer常用设置
  10. Java项目:springboot网上点餐系统