本学习过程参考滴水逆向第三期视频
常见进制
- 十进制
- 二进制
- 十六进制
上面是最常见的进制。正是因为太常见,以至于打消了我们对它们的质疑。比如,1+1=2,我们都潜移默化的认为它是再正确不过了,但是事实真的是这样的吗?不!这根本不少进制的实质!我们得重新去认识它,质疑它!假如你以前没有背诵过十进制的加法表,十进制的乘法表,你还会做1+1 or 1*1吗?
进制的本质
在这之前我们先来看看进制的定义:
- 十进制:由十个符号组成,分别是0 1 2 3 4 5 6 7 8 9 逢十进一
- 二进制:由两个符号组成,分别是0 1 逢二进一
- 八进制:由八个符号组成,分别是0 1 2 3 4 5 6 7 逢八进一
。。。 N进制:?
这些都是我们学过的,已经根深蒂固的装在我们的脑袋里了,但是万一有一天,这些规则被打破了呢?例如
十进制:由十个符号组成,分别是9 1 5 3 6 0 2 4 7 8 逢十进一
你还会做加法吗?知道这些符号代表的含义吗?
如果把这些符号改成图片呢?因此进制的本质,个人理解:
N进制是:由N个符号组成,这N个符号可以被任意符号来表示,逢N进一
如果这个定义被人广泛的使用,比如十进制,那它就是一种通用的语言。
如果这个定义只有少部分人知道和使用,这就是加密!
计算机为啥采用二进制
1.二进制已经足够了
2.受硬件的制约–高电平,低电平
数学计算
还记得小时后老师,父母逼着你背诵加法表,乘法表吗?现在回想一下你在计算1+1的时候,你脑袋里为啥会出现2?因为你脑袋里已经由那张加法表了!乘法也是同样的。做计算的本质就是去查表!
计算机呢?我们这样聪明的人类都是如此,计算机同样如此,只是它查表的速度非常快!
运算的本质就是查表!
不管多么复杂的计算,只需要查表即可!
加法表:
乘法表:
那么你是否想过,加法表和乘法表是怎么来的呢?
当然也是查表!
初始符号表:
比如:
2+8
1.在初始符号表中查 2
2.从2开始向后查8个数 即为所求结果
于是为了计算方便,我们在初始表的基础上做出来了加法表,这样我们能在加法表中直接定位到2+8,提高了加法的查表效率
5*3
1.拆分5*3 为5+5+5
2.做加法查加法表5+5 结果为10
3.做加法查加法表10 +5 没有
4.换原始表,从10开始向后查5个数 结果为15
可以看出:
任何计算都是通过查表得来的,并且都可以通过查初始符号表得来(不考虑速度or效率)