程序员的数学之进制与零
最近一年多发生了很多平凡的大事,应接不暇,一度断更。从今儿起再接上来。
先从数学开始吧,因为太枯燥了。
生活中有许多种进制在共同起作用,例如,数学上的`十进制`、计算机中的`二进制`、`八进制`和`十六进制`、计时的`60进制`、`24进制`和`7进制`。
怎么才能快速地知道`1111`所对应的具体的进制数值呢?例如,`1111`对应的`二进制`、`八进制`和`十六进制`是多少?它对应的`60进制`、`24进制`和`7进制`又分别是多少?
因此,为了解决这个问题,科学家们在`进制`的基础上做了更进一步的抽象。
- 将每个数字所在的`位`单独提取出来。
- 将这些`位`并从小到大依次排列。
- 越靠右位数越小,越靠左位数越高。
按照这种方式,`1111`对应的`二进制`、`八进制`和`十六进制`和`六十进制`就可以这样来表示。
`1111`分解为二进制的结果。
`1111`分解为八进制的结果。
`1111`分解为十六进制的结果。
`1111`分解为六十进制的结果。
因此,`进制计数法`也被称为`按位计数法`。
0的作用
`0`在数学上的意义就是`没有`,但这种`没有`需要用精确且没有歧义的符号来代表。
例如,如果把`101`写成`1 1`,或者将10<sup>0</sup>写成10,不仅很别扭,而且有歧义,搞不好`1 1`还一不小心被混淆成了`11`。
所以,`0`的作用不仅在于替代`没有`,更重要的是它可以`占位`:表示某个数位上没有数字。
例如,`101`就表示它只有`百位数`、`个位数`而没有`十位数`。
这是一种占位的例子。
如果按照`没有`来算,那10的0次方该表示什么数呢?
从直觉上来说,10的0次方应该等于`0`,但如果观察上面幂指数的规律,就可以发现`指数`每减1,数值就变成了之前的十分之一。
所以,10的0次方的值也就可以因此确定了,并不是`没有`。
按照这个规律再继续延伸一下,就可以知道当指数为负数时的结果是什么了。
综合`按位计数法`与`0`的意义,就可以得到`指数法则`。
先归纳,再分治
古人用绳结计数,但要记住的事情多了以后,就有点难于表示了。例如,下面两个`绳结`就不能一眼看出它们的大小。
所以,聪明的先辈们就发明了`按位计数法`,将大量的数字归纳为一个个小`单元`,这个小单元就叫`位`。
以此类推,就有了`百位`、`千位`和`万位`。
但即使这样仍然不能解决数字越来越大的问题。
例如,能否一眼看出`1111111111111111111`和`111111111111111111`这两个数哪个大?
所以,科学家们又想到了`指数法则`。
- `1111111111111111111` = `1.11` × 10的18次方。
- `111111111111111111` = `1.11` × 10的17次方。
好了,这下一目了然了。
按照这种思路,再大的数都可以通不断`归纳`再`分治`的方式变得易于管理和识别。
这正是数学的意义。
更多内容,请移步我的小破站:tianmazuo.com,不胜荣幸!