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余数为几取几最后相反排序。
十进制转十六进制可以对照表:
1 | 2 | 3 | … | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | … | 10 | 11 | 12 | 13 | 14 | 15 |
例如:十进制数字“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)