一些进制转换的方法总结

1.数字系统的由来

每一个进制就是一种数字系统。

非位置化数字系统:罗马数字。

位置化数字系统:二进制/八进制/十进制/十六进制

在我的理解中:

因为我们人类有十根手指,自然而然就采用了十进制数字系统作为最常用的数字系统。

而计算机并没有像我们一样的十根手指,只有通电和不通电两种状态,所以计算机内部采用的都是二进制系统。

2.其他进制转十进制

十进制可用10个可用符号来表示一个数字,同理,二进制也可用2个可用符号来表示一个数字。

例如:十进制数字的“235”中,5为个位,3为十位,2为百位,可表示为
2 × 1 0 2 + 3 × 1 0 1 + 5 × 1 0 0 = 200 + 30 + 5 = 235 2×10^2+3×10^1+5×10^0=200+30+5=235 2×102+3×101+5×100=200+30+5=235
而二进制的“1011”中,最右边的1为个位,向左依次为二位的1,四位的0以及八位的1,可表示为
1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 = 8 + 0 + 2 + 1 = 1 1 ( 10 ) 1×2^3+0×2^2+1×2^1+1×2^0=8+0+2+1=11_{(10)} 1×23+0×22+1×21+1×20=8+0+2+1=11(10)
而八进制和十六进制是也是如此,八进制用8个可用符号来表示一个数字,十六进制用16个可用符号来表示一个数字。

十六进制的可用符号为:0 1 2 3 4 5 6 7 8 9 A B C D E F

例如:十六进制的“2AE”可表示为
2 × 1 6 2 + 10 × 1 6 1 + 14 × 1 6 0 = 512 + 160 + 14 = 68 6 ( 10 ) 2×16^2+10×16^1+14×16^0=512+160+14=686_{(10)} 2×162+10×161+14×160=512+160+14=686(10)

3.十进制转其他进制(连除法)

将十进制的数字每一次除以2,余数为1取1,没有余数取0,到最后1除以2得0余1取1为止。按从最后到开头的顺序排列刚刚取到的1和0即为十进制转换二进制的最终结果。

例如:十进制数“32”转换二进制。
3 2 ( 10 ) 32_{(10)} 32(10)
→32除以2得16余 0 →16除以2得8余 0 →8除以2得4余 0

→4除以2得2余 0 →2除以2得1余 0 →1除以2得0余 1

所以最终结果为
3 2 ( 10 ) → 10000 0 ( 2 ) 32_{(10)}→100000_{(2)} 32(10)100000(2)
十进制转任何一个进制都是如此。

例如:十进制转八进制则是除以8余数为几取几最后相反排序。

十进制转十六进制可以对照表:

123ABCDEF
123101112131415

例如:十进制数字“2365”转换为十六进制。
236 5 ( 10 ) 2365_{(10)} 2365(10)
→2365除以16得147余 13(D) →147除以16得9余 3 →9除以16得0余 9

所以最终结果为
236 5 ( 10 ) → 93 D ( 16 ) 2365_{(10)}→93D_{(16)} 2365(10)93D(16)

4.二进制|八进制|十六进制的相互转换

①二进制转八进制

由于2^3=8,所以每3位的二进制可以转换为1位八进制

例如:二进制“101101111”转换为八进制
10110100 1 ( 2 ) 101101001_{(2)} 101101001(2)
可以把他们分为三个部分:①101 ②101 ③001

则有:
① 10 1 ( 2 ) = 2 2 + 0 + 2 0 = 5 ( 8 ) ①101_{(2)}=2^2+0+2^0=5_{(8)} 101(2)=22+0+20=5(8)

② 10 1 ( 2 ) = 2 2 + 0 + 2 0 = 5 ( 8 ) ②101_{(2)}=2^2+0+2^0=5_{(8)} 101(2)=22+0+20=5(8)

③ 00 1 ( 2 ) = 0 + 0 + 2 0 = 1 ( 8 ) ③001_{(2)}=0+0+2^0=1_{(8)} 001(2)=0+0+20=1(8)

1011011 1 ( 2 ) = 55 1 ( 8 ) 10110111_{(2)}=551_{(8)} 10110111(2)=551(8)

②二进制转十六进制

由于2^4=16,所以每4位二进制可以转换为1位十六进制

例如:二进制“10110111”转换为十六进制
1011011 1 ( 2 ) 10110111_{(2)} 10110111(2)
可以把他们分为两个部分:①1011 ②0111

则有:
① 101 1 ( 2 ) = 2 3 + 0 + 2 1 + 2 0 = 1 1 ( 16 ) = B ( 16 ) ①1011_{(2)}=2^3+0+2^1+2^0=11_{(16)}=B_{(16)} 1011(2)=23+0+21+20=11(16)=B(16)

② 011 1 ( 2 ) = 0 + 2 2 + 2 1 + 2 0 = 7 ( 16 ) ②0111_{(2)}=0+2^2+2^1+2^0=7_{(16)} 0111(2)=0+22+21+20=7(16)

1011011 1 ( 2 ) = B 7 ( 16 ) 10110111_{(2)}=B7_{(16)} 10110111(2)=B7(16)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AKA山风点火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值