进制转换

十进制表示方法:101D或者101

二进制表示方法:1011B

八进制表示方法:14533O

十六进制表示方法:222ABCDEFH


n进制转换成10进制


2进制转换成10进制


Math.pow(a, b) 表示求a的b次幂


位置:76543210

数值:11001101


1*Math.pow(2, 7) +1*Math.pow(2, 6) +0*Math.pow(2, 5) +0*Math.pow(2, 4) +1*Math.pow(2, 3) +1*Math.pow(2, 2) +0*+0*Math.pow(2, 1) +1*Math.pow(2, 0) 

=128+64+8+4+1

=205


8进制转换成10进制

位置:210-1

数值:207.2


2*Math.pow(8, 2) +0*Math.pow(8, 1) +7*Math.pow(8, 0) +2*Math.pow(8, -1)

=128+0+7+0.25

=135.25



16进制转换成10进制

位置:210-1

数值:20A.2


2*Math.pow(16, 2) +0*Math.pow(16, 1) +10*Math.pow(16, 0) +2*Math.pow(16, -1)

=256+10+0.125

=266.125



10进制转换成n进制


10进制转换成2进制

10进制值:34

2 |   34       0

    ————

    2  |  17     1     

        ——

        2|  8        0

           ——

            2   | 4         0

                  ——

                  2  | 2          0

                       ———

                           2| 1           1

                              ——

                                  0

倒过来统计 结果就是 0100010

二进制值就是10001B


十进制转换 八进制和十六进制 同理  除以对应的进制

8进制除8  16进制除16


如果10进制中包含小数的解决办法
例如:
0.375D转换成2进制
0.375*2=0.75            0   --取乘法结果的整数部分
0.75*2=  1.5               1   --用上次乘法的结果小数部分在乘以进制 取整数部分
0.5*2=1                       1   --取上次生发的小数结果乘以进制 取整数部分 直到没有小数位
结果按正常次序排列 结果就是0.011B


比如带有整数个小数


10进制值:34.375转换为2进制
34十进制=10001B
0.375十进制=0.011B
34十进制+0.375十进制=10001B+0.011B=10100.011B    


十进制转换 八进制和十六进制 同理  


2进制转换成n进制

2进制转换成8进制

将二进制转换成8进制 从小数点左 每三位分为一组 不足往前补0  小数点往右 每三位1组 不足往后补0

比如

1110111111.0111

001 110 111 111.011 100

每一组单独求结果 每一位 4,2,1

1 6 7 7 3 4

所以结果是1677.34


2进制转换成16进制

将二进制转换成8进制 从小数点左 每四位分为一组 不足往前补0  小数点往右 每四位1组 不足往后补0

比如

1110111111.01111

0011 1011 1111.0111 1000 每一组但为求 8,4,2,1

3 B  E 7 8

结果就是 3BE.78












原文地址:https://www.cnblogs.com/liaomin416100569/p/9331395.html