[b]0x00 信息的表示和存储(进制转换)
进制说明
计算机常用的存储和处理的进制是二进制、八进制、十进制、十六进制
- 二进制,计算机主要使用的
- 八进制,广泛应用与计算机系统
- 十进制,这个主要是给人类看的
- 十六进制,主要用于代码中的表示法,汇编中也用的多
因为 MarkDown 不支持公式,所以我们约定在括号后用_2
表示进制,_2
代表二进制,_8
代表8进制,_16
代表16进制
十进制
这个不过多介绍,就是我们正常使用的数字,逢10进1
二进制
使用 0,1 来表示
基数:2
二进制就是0和1,逢二进一
例如:(101001)_2+(1)_2=(101010)_2
八进制
使用 0,1,2,3,4,5,6,7 来表示
基数:8
逢八进一
表示法:0开头,比如十进制7,八进制用07
例如:(713)_8+(114)_8=(1027)_8
十六进制
使用 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 来表示
基数:16
逢十六进一
表示法:0x或0X开头,0x10或0X10
例如:(27b)_16+(18a)_16=(405)_16
进制转换
二进制转换成十进制
00101011
转换成十进制是 1*2^0+1*2^1+0*2^2+1*2^3+0*2^4+1*2^5=43
(00101011)_2=(43)_10
八进制转十进制
(745)_8=5*8^0+4*8^1+7*8^2=(485)_10
十六进制转十进制
(a13)_16=3*16^0+1*16^1+a*16^2=(2579)_10
十进制转其它进制
全部用除法除
二进制、八进制、十六进制之间转换
- 八进制,十六进制之间转换都依赖于二进制
- 一个八进制位等于三个二进制位
- 一个十六进制位等于四个二进制位
八进制转二进制
八进制 |
二进制 |
0 |
000 |
1 |
001 |
2 |
010 |
3 |
011 |
4 |
100 |
5 |
101 |
6 |
110 |
7 |
111 |
示例:(456)_8=(100|101|110)_2
在这里,我用|
符号把二进制分成了三个块用来表示八进制位对应的二进制
十六进制转二进制
十六进制 |
二进制 |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
a |
1010 |
b |
1011 |
c |
1100 |
d |
1101 |
e |
1110 |
f |
1111 |
示例:(89f)_16=(1000|1001|1111)_2
和上面一样,用|
分割
八进制转十六进制
- 先八进制转二进制
(342)_8=(011|100|010)_2
- 然后二进制转十六进制
(1110|0010)_2=(e2)_16
十六进制转八进制
- 先十六进制转二进制
(6f3)_16=(0110|1111|0011)_2
- 然后二进制转八进制
(011|011|110|011)_2=(3363)_8