欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

明白晓畅地理解:如何处理带有小数的进制转换

最编程 2024-07-20 18:02:23
...

大家好,又见面了,我是你们的朋友全栈君。

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

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

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到最后不剩小数部分。这时通常是根据精度要求转换到小数后某一位为止。