简单谈谈进制转换

进制转换整理

2进制Binary/Bin:每一位可以有两个数字之一,0和1;
8进制Octal/Oct:每一位可以有八个数字之一,0,1,2,3,4,5,6,7
10进制Decimal/Dec:每一位可以有十个数字之一,0,1,2,3,4,5,6,7,8,9
16进制Hexadecimal/Hex:每一位可以有十六个数字之一,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

进制转换的基础:10进制(生活中常用)、2进制(计算机内部常用)。

十进制的剖析:以53为例,也就是 5 ∗ 10 + 3 5*10+3 510+3;456就是 4 ∗ 100 + 5 ∗ 10 + 6 4*100+5*10+6 4100+510+6
进而可以表示成 5 ∗ 1 0 1 + 3 ∗ 1 0 0 5*10^1+3*10^0 5101+3100 4 ∗ 1 0 2 + 5 ∗ 1 0 1 + 6 ∗ 1 0 0 4*10^2+5*10^1+6*10^0 4102+5101+6100
我们可以把形如 1 0 2 10^2 102叫做这一位数字对应的权重。

如何将其他进制转换成十进制?
如二进制 110101 110101 110101。我们就可以每一位的数字,乘以其对应的权重。
也就是 1 ∗ 2 5 + 1 ∗ 2 4 + 0 ∗ 2 3 + 1 ∗ 2 2 + 0 ∗ 2 1 + 1 ∗ 2 0 = 2 5 + 2 4 + 2 2 + 2 0 = 53 1*2^5+1*2^4+0*2^3+1*2^2+0*2^1+1*2^0=2^5+2^4+2^2+2^0=53 125+124+023+122+021+120=25+24+22+20=53

类似,我们也可以把53这样拆解
53 = 32 + 16 + 4 + 1 = 2 5 + 2 4 + 2 2 + 2 0 = ( 110101 ) 2 53=32+16+4+1=2^5+2^4+2^2+2^0=(110101)_2 53=32+16+4+1=25+24+22+20=(110101)2

同理,53也可以转换成8、16进制的 ( 65 ) 8 (65)_8 (65)8 ( 35 ) 1 6 (35)_16 (35)16

拆解的过程中,我们会发现53不能减去64,减去8也不行,而是48(6*8),也就是
53 = 6 ∗ 8 1 + 5 ∗ 8 0 53=6*8^1+5*8^0 53=681+580
换而言之,我们得到了另外一种解法,也就是53除以8=6余5,写上5;最后6除8=0余6,写上6,得到65。
435/8=54余3,最后一位也即是3;54/8=6余6,写6;6/8=0余6,写6。得到663。

435转换16进制也是同理。435除以16,得27余3,最后一位写3;27除以16,得到1余11,写上11(B);最后1除以16余1,写上1,也就是1B3。

2、8、16进制快速转换:基于2进制
| 十进制 | 二进制 | 八进制 | 十六进制|
|–|–|–|–|–|
| 0 | 0 | 0 | 0
| 1 | 1 | 1 | 1
| 2 | 10 | 2 | 2
| 3 | 11 | 3 | 3
| 4 | 100 | 4 | 4
| 5 | 101 | 5 | 5
| 6 | 110 | 6 | 6
| 7 | 111 | 7 | 7
| 8 | 1000 | 10 | 8
| 9 | 1001 | 11 | 9
| 10 | 1010 | 12 | A
| 11 | 1011 | 13 | B
| 12 | 1100 | 14 | C
| 13 | 1101 | 15 | D
| 14 | 1110 | 16 | E
| 15 | 1111 | 17 | F

八进制663,转换为二进制可直接查表:(每一位八进制数转为三位二进制数,前面补上0)
110 110 011;从右往左,每四位分开并高位补0得到0001 1011 0011;
查表转回,得到1B3。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值