进制转换特辑

进制转换

这篇博客会展示二进制转换成十进制、八进制、十六进制;以及十进制、八进制、十六进制转换成二进制。(如有错误,欢迎指正)

认识数

首先我们要记住一些必要的二进制数字,在八进制和十六进制的数字。

  1. 二进制在要换成八进制的前提 ,我们都知道,二进制转八进制是把数字三位一划分,则要记住这些数字的二进制;
    三位的二进制的1--7
  2. 二进制在要换成十六进制的前提 ,二进制转十六进制是把数字四位一划分,则要记住这些数字的二进制;
    特别强调:从十开始是A-F四位的二进制1-F

开始正题

二进制转十进制
例: ( 1011.101 ) 2 = 1 ∗ 2 0 + 1 ∗ 2 1 + 0 ∗ 2 2 + 1 ∗ 2 3 + 1 ∗ 2 − 1 + 0 ∗ 2 − 2 + 1 ∗ 2 − 3 = ( 11.625 ) 10 (1011.101)_2=1*2^0+1*2^1+0*2^2+1*2^3+1*2^{-1}+0*2^{-2}+1*2^{-3}=(11.625)_{10} 1011.101)2=120+121+022+123+121+022+123=(11.625)10
以小数点为中心,小数点左边的数字都是以2的0次方依次向左边去,小数点右边的数字都是以2的-1次方开始,依次向右边去。是一个发散的样式。
ps:八进制转十进制是把上面的2换成8,十六进制也是这样,换成16.

十进制转二进制
例: ( 122 ) 10 = ( ? ) 2 (122)_{10}=(?)_2 (122)10=(?)2
在这里一般是用的除以二来算的,其实可以使用一种加法来算,我个人感觉比较简单。 122=64+32+16+8+2
我们先找到不超过这个十进制数的2的幂次方数,然后依次找下一个加上去,直到凑够这个十进制数。注意:这里的数都是2的某个幂次方数。
然后我们以这个例子看:64是2的6次方,则二进制数有7个,则可以按照下面的方法来写,第一行是初始 的数字,第二行是最终的二进制数,那个位置上有对应的数为1,没有则是0.
如图
特别的十进制小数转二进制数
例: ( 122.59375 ) 10 = ( ? ) 2 (122.59375)_{10}=(?)_2 (122.59375)10=(?)2 我们写这个数字的时候要把整数部分和小数部分分开来写。122我们上面算好了是1111010;
下面来算0.59375;
如图
我们使用的是乘2法。如果这个数X2后大于1 ,则把这个1放出去,继续以小数位相乘,如果么有1大,则写入0,依次直到没有小数位为止。

二进制转八进制
前面我们已经说过二进制转八进制是以三位合一位来写的
例: ( 111011110.001 ) 2 = ( ? ) 8 (111011110.001)_2=(?)_8 (111011110.001)2=(?)8
我们可以写成这样,三位合一位。
111 101 110.001,要是不够的,要补0;
然后计算。111是7、101是3、110是6、001是1,则
( 111011110.001 ) 2 = ( 736.1 ) 8 (111011110.001)_2=(736.1)_8 (111011110.001)2=(736.1)8

二进制转十六进制
十六进制是四位合一位的,和八进制类似
例: ( 10001111 ) 2 = ( ? ) 16 (10001111)_2=(?)_{16} (10001111)2=(?)16
1000是8、1111是15也就是F,则 ( 10001111 ) 2 = ( 8 F ) 16 (10001111)_2=(8F)_{16} (10001111)2=(8F)16

八进制转二进制
我们已经知道二进制转八进制是三位合一位,那么反过来,八进制转二进制是一位拆成三位。
例: ( 127 ) 8 = ( ? ) 2 (127)_8=(?)_2 (127)8=(?)2
1是001、2是010、7是111,则 ( 127 ) 8 = ( 001010111 ) 2 (127)_8=(001010111)_2 (127)8=(001010111)2

十六进制转二进制
同上面的八进制转二进制,这个十六进制是一位拆成四位。
例: ( 8 F ) 16 = ( ? ) 2 (8F)_{16}=(?)_2 (8F)16=(?)2
上面已经知道,这里就不在说了,结果是 ( 8 F ) 16 = ( 10001111 ) 2 (8F)_{16}=(10001111)_2 (8F)16=(10001111)2

八进制转十六进制
这个不能直接转,要从八进制转到二进制,再从二进制转到十六进制
例: ( 127 ) 8 = ( 001010111 ) 2 = ( 057 ) 16 (127)_8=(001010111)_2=(057)_{16} (127)8=(001010111)2=057)16

十六进制转八进制
这个也是,要从十六进制转到二进制,再从二进制转到八进制。

下一篇博客会讲二进制的原码,反码,补码,移码以及IEEE754标准的32位浮动数的二进制存储格式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值