大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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到最后不剩小数部分。这时通常是根据精度要求转换到小数后某一位为止。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167787.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...