带小数的进制转换[通俗易懂]

带小数的进制转换[通俗易懂]整数的进制转换方法相信大家应该都很清楚,但是大家有没有想过带小数的数据又该怎样进行进制的转换呢?下面就以二进制为例进行说明。1.带小数的二进制转换为十进制:例如二进制数1011.0111,在转换过

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  整数的进制转换方法相信大家应该都很清楚,但是大家有没有想过带小数的数据又该怎样进行进制的转换呢?

下面就以二进制为例进行说明。

1.带小数的二进制转换为十进制:

  例如二进制数 1011.0111,在转换过程中将其分为整数部分和小数部分分别转换,整数部分转换方式没有变化,即每位乘以2的对应该位数上的幂,此整数的幂为0~3,而对         于小数部分来说,对应的2的幂则应该是-1~-4。

  1011.0111 = (1*2^3+0*2^2+1*2^1+1*2^0) + (0*2^-1+1*2^-2+1*2^-3+1*2^-4

       =8+0+2+1+0+1/2^2+1/2^3+1/2^4

       =11.4375


2.带小数的十进制转换为二进制:

  我们知道十进制整数转换为二进制的方法是除2取余,直至商为0,最后将所得余数以逆序排列即可得到二进制数。而对于十进制小数则刚好相反,转换的方法是乘2取整,将小   数乘以2然后截取整数部分,再把截取后的小数乘以2再截取整数,以此类推,直至小数部分为0,最后将截取所得到整数以顺序排列即可得出对应的二进制数。

例如 0.4375

0.4375*2 = 0.875……取0,

0.875*2 = 1.75……取1,

(1.75-1)*2 = 1.5……取1,

(1.5-1)*2 = 1……取1,

1-1 = 0(到此结束)

所以所得二进制数为0.0111。

  需要注意的是并不是所有十进制小数都可以完全转换为二进制数,因为如果要实现完全转换必须乘2到最后不剩小数部分。这时通常是根据精度要求转换到小数后某一位为止。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167787.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月4日 下午7:36
下一篇 2022年8月4日 下午7:46


相关推荐

  • SECS/GEM开发介绍

    SECS/GEM开发介绍SECS GEM 是由国际半导体设备和材料 SEMI 协会成员制定的连接标准 本标准适用于设备和工厂管理系统之间的通信标准 介绍 SECS GEM 是指一套半导体行业标准 用于管理制造设备和工厂主机系统之间的通信 消息层标准 SEMIE5SECS II 定义了一个通用的消息结构和一个包含许多标准化消息的库 协议层标准 SEMIE37 高速消息服务 HSMS 定义了使用 TCP IP 传输 SECS II 消息的二进制结构 SEMIE30GEM 为一些 SECS II 消息定义了一组最低要求

    2026年3月19日
    2
  • c语言中的assert函数_assert函数用法

    c语言中的assert函数_assert函数用法一、 简介assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行。原型定义:#include <assert.h>void assert( int expression );assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来…

    2022年8月18日
    7
  • java对象复制和属性值复制工具类[通俗易懂]

    java对象复制和属性值复制工具类[通俗易懂]两个不同类型的对象中有字段名称不区分大小写的情况下一样,字段含义一样,需要组装到另一个对象中去,然后就写了一个这种工具类我的类型比较特殊,老系统和新系统的对象命名大小写命名不一致,并且字段相同类型也有不一致的情况,所以自己写了一个,不是很完美基本能用。温馨提示:如果同一种类型的对象属性字段名equals相等并且类型一致。则完全可以用commons-beanutils包或者spring包

    2022年10月3日
    6
  • Quartz异常-Error creating bean with name ‘org.springframework.scheduling.quartz.SchedulerFactoryBean「建议收藏」

    Quartz异常-Error creating bean with name ‘org.springframework.scheduling.quartz.SchedulerFactoryBean「建议收藏」目录一、问题描述二、问题分析三、问题解决四、工程源码4.1maven配置4.2 web.xml4.3spring配置文件4.4 Quartz配置文件4.5定时任务类4.6工程总体结构一、问题描述  今天使用Quartz+Spring测试定时任务时,发现报异常:Errorcreatingbeanwithname’org.spring…

    2022年5月23日
    45
  • pycharm在linux系统汉化,PyCharm中文乱码问题的解决

    pycharm在linux系统汉化,PyCharm中文乱码问题的解决这几天一直挺困扰的是使用PyCharm之后一直对中文的乱码,即使添加了很多别人说的类似于#coding:utf-8的语句但是还是报错,让我抓狂,但是今天终于找到了解决的办法,还真的是让人很高兴啊,哈哈哈这是报错的窗口:典型的无法识别中文,在头添加#coding:utf-8之后还是报错的状态,所以就用了下面的方法,首先,我用的是PyCharm的4.5.3最新的版本进入设置界面,找到Editor–…

    2022年8月25日
    9
  • 用 Claude AI 构建智能应用

    用 Claude AI 构建智能应用

    2026年3月12日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号