进制转换java语言_【java-19-21】java语言基础-进制的基本转换

进制的基本转换:

十进制、二进制互转

1)十进制转化成二进制,除以2取余数

2)二进制转化成十进制,乘以2的幂数

十进制、八进制互转

1)十进制转化成八进制,除以8取余数

2)八进制转化成十进制,乘以8的幂数

十进制、十六进制互转

1)十进制转化成十六进制,除以16取余数

2)16进制转化成十进制,乘以16的幂数

负数的二进制表现形式

对应的整数二进制取反加1

例子:

二进制转化为其他进制

1)二进制转化成十进制:

1011  = 1*2(0)+1*2(1)+0*2(2)+1*2(3)= 11

2)二进制转化成八进制(三个一分段):

010101110 = 010-----------------101------------------------- 110  =   0256

2=1*2(1)    5=1*2(0) +1*2(2)         6=1*2(1)+1*2(2)

3)二进制转化成十六进制(4个一分段):

10101110 = 1010 ------------------------------1110   =  0xAE

10=1*2(1)+1*2(3)        14=1*2(1)+1*2(2)+1*2(3)

10     11     12      13    14      15

A       B      C        D     E         F

结论:

八进制数:其实就是二进制中的三个二进制位为一个八进制位

十六进制:其实就是二进制中的四个二进制位为一个十六进制位

十进制转化成其他进制

方法一:

1)十进制转化成二进制

6=110

8c392475e8657d907432011b19ea1082.png

2)将转化成的二进制,转化成八进制或十六进制参考上方

方法二:

参考:https://mp.weixin.qq.com/s?src=11&timestamp=1580911749&ver=2140&signature=h-gqu3GT-YG1BQdytJzof7Itqfk*s8AYilB5100km0LrcnOwMbl2weX-ekZ2DS3c88yVeOT*OKemJJsEPSKlmjkn*3vs2Mh7q4t8-URPAFy1Kmen0zJb4bxodfZ8iX16&new=1

将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样

1)整数部分:

十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:

将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;

保留余数,用商继续除以 N,又得到一个新的商和余数;

仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;

……

如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。

把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。

b9d3d0385c5e4bd9da0430a2c5a1155d.png

2) 小数部分

十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:

用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;

将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;

再将积的整数部分取出,继续用 N 乘以余下的小数部分;

……

如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。

把取出的整数部分按顺序排列起来,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,这样就得到了 N 进制小数。

下图演示了将十进制小数 0.930908203125 转换成八进制小数的过程:

1dc1e2a6bf13be815af48a70362e87a2.png

负数的二进制表现

负数的二进制最高位是1

-6的二进制

7f7d41d2d5612520f9ef50919850985b.png

补充:

a191ebf9b0550b3fd2bc163b9784c8a5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值