小数十进制转二进制

article/2025/10/31 13:36:53

整数部分的十进制和二进制转换很容易,下面我们只考虑小数部分的转化:

一、十进制小数转二进制

小数部分十进制小数乘以 2,得出的积,然后把积的整数位取出,再用积的小数部分乘以 2,再把积的整数位取出,再用小数部分乘以 2,循环操作,直到小数部分为 0,或者遇到无限循环,取到你认为足够精度的小数为止,然后把取出的整数位顺序连接起来,就是要转换成的二进制小数。

例如:

0.125的十进制转换成二进制形式

计算

取整数部分

0.125*2=0.25

0

0.25*2=0.5

0

0.5*2=1

1

所以:

0.125的二进制形式为0.001

比如:0.4 要转换成二进制数

0.4* 2= 0.8取整数位0

0.8* 2= 1.6取整数位1

0.6* 2= 1.2取整数位1

0.2* 2= 0.4取整数位0

0.4* 2= 0.8取整数位0

0.8* 2= 1.6取整数位1

0.6* 2= 1.2取整数位1

0.2* 2= 0.4取整数位0

0.4* 2= 0.8取整数位0

0.8* 2= 1.6取整数位1

......

这样就会无限循环下去,小数部分也不会为 0。那就取一个你认为合适的精度。

0.0110011001

= 0.39941406 //无限接近0.4

这样看来,最末尾的数字如果不是5,最后的都只能根据所需精度取近似值。

二、二进制小数转换成十进制

      从二进制小数部分的左边第一位开始,由高位到低位,依次乘以 2 的 -1 次方,2 的 -2 次方,2的 -3 次方... 最后把所有的结果相加,就是要转换的十进制小数。

第1位*1/2   (即0.5)

第2位*1/4   (即0.25)

第3位*1/8   (即0.125)

第4位*1/16 (即0.0625)

.

.

.

.

例如:

0.001的二进制转换成十进制数

位数

位值

计算

结果

加和

1

0

0*0.5=0

0

2

0

0*0.25=0

0

3

1

1*0.125=0.125

0.125

0.125

例如:

0.1011的二进制转换成十进制数

位数

位值

计算

结果

加和

1

1

1*0.5=0.5

0.5

2

0

0*0.25=0

0

3

1

1*0.125=0.125

0.125

4

1

1*0.0625=0.0625

0.0625

0.6875

所以

1位小数的精度是 2^-1 =0.5

2位小数的精度是 2^-2 =0.25

3位小数的精度是 2^-3 =0.125

4位小数的精度是 2^-4 =0.03125

5位小数的精度是2^-5  =0.015625

所以你希望精度是0.1,或者0.01都是做不到的,那样只能取近似值;

三、小数十进制转换为16进制

小数部分十进制小数乘以16,得出的积,然后把积的整数位取出,再用积的小数部分乘以16,再把积的整数位取出,再用小数部分乘以 16,循环操作,直到小数部分为 0,或者遇到无限循环,取到你认为足够精度的小数为

止,然后把取出的整数位顺序连接起来,就是要转换成的16进制小数。

0.125的十进制转换成16进制形式:

0.125* 16= 2取整数位2

0.125的十六进制形式为0.2

考虑前面0.125计算出来的二进制形式为0.001,我们四位一组补齐,那么0.125的二进制形式为0.0010,整数中的二进制0010B=2H,这样直接就得到了16进制的0.2;

再举一例测试:十进制的0.375分别转换成二进制数和十六进制数分别是:

1、按十到二进制转换方法计算得出0.375的二进制表示为:0.011    

2、按十到二进制转换方法计算得出0.375的二进制表示为:0.6

我们将0.375的二进制结果末尾0.011补0凑成四位,则得到0.375的二进制表示为0.0110,于是根据整数二进制十六进制转换方法得到0.375的十六进制结果为0.6;

于是得到小数二进制和十六进制的转换方式和整数部分是相同的,二进制往右补0,补齐4位,8位,12位等4的倍数位数即可;

再用前面的0.4为例计算:

0.4*16= 6.4取整数位6

0.4* 16= 6.4取整数位6

0.4* 16= 6.4取整数位6

......

这样会无限循环下去…我们取两位得到0.4的十六进制结果是0.66,按三中的分析方法,直接得到0.4二进制结果是0.01100110。这和前面利用十进制转二进制方法的得到的结果是一致的。

由此推广到所有小数的进制互换,二进制,八进制,十进制,十六进制表示方法之间的相互转换,顿时豁然。

                                                     2022年8月5日 长沙


http://chatgpt.dhexx.cn/article/LPBNetmf.shtml

相关文章

小数转二进制

小数转二进制 小数转二进制常用的方法有两种: 定点存储法 以0.625为例-----转换二进制为: 浮点存储法 二进制为:01000001 10011101 00000000 00000000 C#里使用浮点存储法,先用定点存储法计算后再进行浮点存储法计算。 由于转…

WARNING: RXTX Version mismatch Jar version = RXTX-2.1-7 native lib Version = RXTX-2.2-20081207 Cl

1.问题描述: WARNING: RXTX Version mismatchJar version RXTX-2.1-7native lib Version RXTX-2.2-20081207 Cloudhopper Build rxtx.cloudhopper.net gnu.io.NoSuchPortExceptionat gnu.io.CommPortIdentifier.getPortIdentifier(CommPortIdentifier.java:218)…

银河麒麟龙芯mips64架构集成RXTX串口通讯兼容问题

前言 应用涉及到串口通讯,用到的是RXTX。一直部署在win环境,项目要求用国产服务器、银河麒麟操作系统、龙芯处理器、国产中间件、国产数据库。因此出现rxtx在以上环境中兼容问题,下面记录下我遇到的问题。如有其他问题可邮箱联系mokeily9912…

RXTX串口通信(一)

准备工作:https://download.csdn.net/download/sinat_27815631/10318202 在此下载虚拟串口工具,以及串口调试工具 1.虚拟串口工具解压后双击此即可。 会看到这个界面,会添加串口,然后打开设备管理器。 2.串口调试工具 这样串口…

java串口rxtx的若干坑

首先读串口大部分用的都是rxtx,rxtx的相关介绍都很多,不介绍了 坑1,必须jdk1.8,而且最好是201的,版本高,直接jvm崩溃 坑2,windows上可用,但Linux上未必可行,读数据必报…

JavaDemo——java使用RXTX读写串口

对RXTX的介绍,copy自https://blog.csdn.net/u011728105/article/details/48085615 RXTXRXTX是一个提供串口和并口通信的开源java类库,由该项目发布的文件均遵循LGPL协议。RXTX项目提供了Windows,Linux,Mac os X,Solaris操作系统下的兼容javax.comm串口通…

使用RXTX实现简单串口通信调试工具

最终效果如下图: 1、把rxtxParallel.dll、rxtxSerial.dll拷贝到:C:\WINDOWS\system32下。 2、RXTXcomm.jar 添加到项目类库中。 package serialPort;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import j…

Springboot + rxtx 实现串口读写 案例

经过大量翻阅文章总结出springboot连接串口最可行的方法&#xff01;希望能帮到大家( •̀ ω •́ )✧ 使用Rxtx实现串口通信 1、配置pom.xml <!-- 串口内容读取 --><dependency><groupId>org.bidib.jbidib.org.qbang.rxtx</groupId><artifactId&…

java使用RXTX的详细总结

1 简介 项目要求&#xff1a;读取串口信息&#xff0c;并输出展示相应的图像&#xff0c;本篇文章不深入谈前端的内容着重于后端遇到的问题。2021-01-08更新&#xff0c;发现一个重大的问题&#xff1a;如果有人能解决的话请在评论区回复&#xff1a; 在连上串口后&#xff0c…

JAVA使用RXTXcomm进行串口通信(一)

1.引入RXTXcomm.JAR包 首先下载相应的jar文件 压缩包包括:RXTXcomm.jar(64位环境)、win32com.dll和javax.comm.properties。 下载地址:https://www.aliyundrive.com/s/JSeSQsAyYeZ 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需…

SpringBoot使用RXTX连接串口教程及遇到的坑总结

文章目录 SpringBoot使用RXTX连接串口教程及遇到的坑总结一、所用环境及依赖二、部署流程2.1 下载RXTXComm包2.2 部署RXTXComm包 三、编写串口使用程序3.1 编写RXTXConfig.java3.2 编写实体类SerialPortEntity3.3 编写监听器SerialPortListener3.4 编写工具类SerialPortUtil3.5…

【计算机基础|计算机组成原理】【10】海明校验码

海明校验码 海明校验码思路 偶校验&#xff1a;1010 → 01010&#xff0c;能发现奇数位错误&#xff0c;但无法确定是哪一位出错 → 1个校验位只能携带2种状态信息&#xff1a;对/错 海明码设计思路&#xff1a;将信息位分组进行偶校验 → 多个校验位能携带多种状态信息&#x…

计算机组成原理汉明校验,海明校验码(计算机组成原理11)

海明校验码 视频链接地址&#xff1a; https://www.bilibili.com/video/BV1BE411D7ii?fromsearch&seid6420326887479343502 前言 在本篇中&#xff0c;你将掌握 海明码的基本思想 海明码的求解步骤和全校验码 在计算机内部进行存储、计算的数据都是以二进制形式传送&#…

海明校验码纠错设计原理

本文不阐述海明码计算方式&#xff0c;为了节省您的时间&#xff0c;请先学习海明码/奇偶校验是如何计算的&#xff0c;如果好奇其海明码的纠错设计思路再来看此文章&#xff01; 信息为位数为n&#xff0c;校验位数为k&#xff0c;正确状态占1位&#xff0c;所以总位数&#…

2.21 海明校验码

海明校验码 需要了解海明码的编码规则&#xff0c;要会计算需要多少位校验位。 海明码的编码规则 校验位&#xff1a; 校验位的位置是有规律的。都是位于2n。 比如20(1),21(2),22(4)。。都是校验位。 信息位&#xff1a;不是校验位的其他位置。 举个例子 当信息位有1位&am…

【软考学习7】数据校验——海明校验码、循环校验码、奇偶校验码

一、检错、纠错和码距 1.1 检错 从接收的报文中&#xff0c;检查出错误。 1.2 纠错 从接收的报文中检查出错误&#xff0c;并改正错误。 一般通过加冗余信息&#xff08;增大码距&#xff09;来实现。 1.3 码距 码距是整个编码系统中任意两个码字的最小距离。 也就是说&a…

超详细的海明校验码方法解读

海明校验码原理&#xff1a;在有效的信息为中加入几个校验位形成海明码&#xff0c;使码距[rjazgj1] 比较均匀地拉大&#xff0c;并把海明码的每个二进制位分配到几个奇偶校验组[rjazgj2] 中。当某一位出错后&#xff0c;就会引起有关的几个校验位的值发生变化&#xff0c;这不…

海明校验码原理以及作用机制的介绍

什么是海明校验码&#xff1f; 由Richard Hamming于1950年提出、还被广泛采用的一种很有效的校验方法&#xff0c;是只要增加少数几个校验位&#xff0c;就能检测出二位同时出错、亦能检测出一位出错并能自动恢复该出错位的正确值的有效手段&#xff0c;后者被称为自动纠错。 它…

海明校验码的计算及检验

海明校验码的计算及检验 目录 海明校验码的计算及检验知识背景计算海明校验码步骤一&#xff1a;计算校验码位数步骤二&#xff1a;确定校验组步骤三&#xff1a;计算校验码的值得出海明校验码 利用海明校验码校验数据其他 总结 最近和兄弟探讨一个海明校验码的题目&#xff0c…

海明校验码举例

海明校验码举例&#xff1a; 编制ASCII字符M的海明校验码。 解&#xff1a;M的ASCII码为A6A5A4A3A2A1A01001101 M为7位那么海明码最少需要2i&#xff0c;也就是说需要&#xff0c;才能表示出来&#xff0c;&#xff08;238&#xff09; 用哪些信息位分别被哪些校验位效验如…