php 进制 小数,小数进制转换

二进制数与十进制数如何转换:

(1) 二进制数—→十进制数

对于较小的二进制数:

对于较大的二进制数:

方法1:各位上的数乘权求和??例如:

(101101)2=1×25+0×24+1×23+1×22+0×21+1×20=45

(1100.1101)2=1×23+1×22+0×21+0×20+1×2-1+1×2-2+0×2-3+1×2-4=12.8125

方法2:任何一个二进制数可转化成若干个100…0?的数相加的总和??例如:

(101101)2=(100000)2+(1000)2+(100)2+(1)2

而这种100…00形式的二进制数与十进制数有如下关联:1后有n个0,则这个二进数所对应的十进制数为2n。

所以:(101101)2=(100000)2+(1000)2+(100)2+(1)2=25+23+22+20=45

十进制45.8375转换为八进制 (转换为二进制类似)

整数部分除8取余数:

45/8=5–5

5/8=0—5

整数部分为55(注意倒过来)

小数部分乘8取整:

0.8375*8=6.7–6

0.7*8=5.6—–5

0.6*8=4.8—–4

0.8*8=6.4—–6

0.4*8=3.2—–3

0.2*8=1.6—–1

0.6*8=4.8—–4

小数部分是循环小数:0.65463146314631………..

合起来就是55.65463146314631………..

整数部分除以8取余数作为个位,再对商除以8取余数作为十位,…

小数部分乘以8取整数部分作为十分位,在将剩下的小数部分乘以8作为百分位,…

如 17.625

19 % 8 = 3

2 % 8 = 2

整数部分得23

0.625 * 8 = 5

小数部分为0.5

所以最终结果为23.5

    原文作者:长亭Time
    原文地址: https://blog.csdn.net/weixin_33587161/article/details/115880956
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞