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

带小数的进制转换[通俗易懂]整数的进制转换方法相信大家应该都很清楚,但是大家有没有想过带小数的数据又该怎样进行进制的转换呢?下面就以二进制为例进行说明。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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

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

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