二进制与十进制
1. 十进制基本概念
145 ,被理解为 “一百四十五” ,但是 145 并不是一个 “数” ,而只是一个数的代码,是这个数的 “书写方式” 。
三、叁、three、3、|||、III、***、 丙、等等很多书写方式,其实都可以表达同样的数学上的数字概念。
阿拉伯数字用 10
而罗马数字用 X
来表达同一个数学概念。
我们所说的 “一百四十五” ,其实只是一种表达方式:阿拉伯式的表达,也即使十进制。
2. 十进制规则总结
归纳起来:
- 十进制数使用数字 0 ~ 9 ;
- 每一位的 “权” 是
,从低到高依次是:
,
,
,
,
等等;
- 用两位数可表示的最大数为 99 。也就是说,用 n 位数表示的范围是:0 ... n 个 9。共 10 的 n 次方个。
十进制的普及不是偶然的,但是我们可以使用不同的进制。
::: warning 注意
进制不同,只是书写效果的不同。不同的书写方式,可以表达同一个 “数” 的数学概念。
:::
3. 进制规则的推广
按照十进制中总结的数学规则,可以这样描述 八进制 :
- 可用的数字为 0 ~ 7;
- 各位的权是
,从低到高依次是:
,
,
,
,
等等;
- 用两位数可表示的最大数为 77 。也就是说,用 n 位八进制数表示的范围是:0 ... n 个 7,共
个。
::: tip 练习
描述六进、七进制和九进制。
:::
十进制:
位数 | 第 4 位 | 第 3 位 | 第 2 位 | 第 1 位 |
---|---|---|---|---|
位权 | ||||
值 | 1000 | 100 | 10 | 1 |
七进制:
位数 | 第 4 位 | 第 3 位 | 第 2 位 | 第 1 位 |
---|---|---|---|---|
位权 | ||||
等价十进制 | 343 | 49 | 7 | 1 |
4. 重点结论
同样的书写方式 200
:
- 十进制表示的数值是 2 个 100,而
- 七进制表示的数值 2 个 49
为了表达 50
这个数值:
- 十进制的书写格式是 50 ,而
- 七进制的书写格式是 101 ,
- 八进制的书写方式是 62
所以:
-
在不同的进制之间,同样的「书写方式」表达的数学值并不一样;
-
而要表达同样的数学值,「书写方式」是不一样的。
5. 二进制
二进制是这一概念推广的最终产物。
位数 | 第 8 位 | 第 7 位 | 第 6 位 | 第 5 位 | 第 4 位 | 第 3 位 | 第 2 位 | 第 1 位 |
---|---|---|---|---|---|---|---|---|
位权 | ||||||||
等价十进制 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
计算机根本不认识字母、数字、指令或程序,在它的内部只是一些电路,某个电路的节点上要么有很多电,要么几乎没有电。
在硬件上,硬件工程师不太容易表示:少点电
- 一些点
- 较多电
- 许多电
- 大量电
这样的多状态。 反而很容易也更稳妥地实现:有电
- 没电
的两状态。所以二进制的本质就是:用 1 和 0 可以代表每一段电路的真实状态。
因为早期的计算机一次处理 8 位,所以很自然的将 8 位大小的长度称为 字节 。
用 8 位二进制数可以表示 256 个不同的值。如果 8 位都为 1,则对应的十进制值是 255;如果 8 为都是 0,则对应的十进制值是 0,从 0 ~ 255 一共有 256 种可能的状态(数据)。
-
1 byte = 8 bit
-
1 KB =
byte
-
1 MB =
KB =
byte
-
1 GB =
MB =
KB =
byte
= 1024
6. 十六进制
因为二进制数难于阅读,于是人们想出了一种更为简单的方式来表达相同的值。 从二进制转换成十进制设计到大量的数的操作,但是从二进制转换成十六进制就很简单。
简单来说,你可以认为:在人类社会中,十六进制本质上是二进制的简写,因为在人类社会的交流中直接使用二进制太麻烦了!
十六进制中有十六个数字:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f:
- 用 a 表示比 9 大 1 的数,其值相当于十进制中的 10 ;
- 用 b 表示比 a 大 1 的数,其值相当于十进制中的 11 ;
- 用 c 表示比 b 大 1 的数,其值相当于十进制中的 12 ;
- 用 d 表示比 c 大 1 的数,其值相当于十进制中的 13 ;
- 用 e 表示比 d 大 1 的数,其值相当于十进制中的 14 ;
- 用 f 表示比 e 大 1 的数,其值相当于十进制中的 15 。
也就是说,有些数学概念上的数值,十进制中需要用两位数表示,但是十六进制用一位数就能表示
位 | 第 4 位 | 第 3 位 | 第 2 位 | 第 1 位 |
---|---|---|---|---|
位权 | ||||
等价十进制 | 4096 | 256 | 16 | 1 |
诀窍
:一个字节中的 8 位 2 进制数,分成两组 4 位,正好每一组 4 位二进制数等价于 1 位十六进制数。