进制的本质

文章来源:https://blog.seclibs.com/2020/02/25/进制的本质/

什么是进制,进制的本质又是什么,为什么在计算的时候都会把十进制作为中间转换,其实这样的思维完全是错误的,进制的本质并不是我们熟悉的十进制。

进制的本质

进制的本质就是查表,与各种的转换没有任何关系,并不是说计算八进制,就把它转为十进制计算后再转回八进制,这种思想本来就是错误的,进制的本质就是写表和查表,我们之所以对十进制的特别熟悉,就是因为我们把十进制相关的表记住了,并不是因为十进制就是进制的基础。

正常的三进制的表示

这里用三进制的形式来表示是为了方便说明问题,在正常的三进制中有三个元素0、1、2,它们所表示出来的数是这个样子的。

其中的每一个数是怎么写出来的,其实都是根据最前面的0、1、2三个数查出来的,后面的所有数都是由前面的数查出来的。

首先先写出0、1、2,再往后的话就需要进位,一位已经满足不了我们现在的需求了,所以需要两位来进行表示,如何从一位表示跨度到两位表示,这里提供一个方法:在一位的0、1、2前面补一个0,在两位看来,一位的表示其实就是第一位为0,这样写出来的时候,会比较方便观察和理解。

看图,当前数字为02,需要往后走一位,按照前面0、1、2的顺序来看,接下来,2应该往后走一位,但是后面没有数字了,就需要返回开始的数字重新来一遍,此时应该把这一轮结束的标志记录到前面,也就是我们所说的进位,所以0应该变为1,2应该变为0,所以接下来的数字应该为10。

接下来,继续往后加一,也就是再往后挪一个,0往后走一步就变成了1,所以接下来是11,再往后是12。

接下来又到了所谓进位的时候,2往后走一步,发现又需要重新回到开头,开始新的一轮,所以2变成了0,而前面记录的又需要再加一个,1往后走一步,就变成了2,所以接下来的数就变成了20。

再往后就依次类推,最后就得到了文章开头所得到的三进制的表格。

正常的三进制的运算

在有了前面的这个基础之后,我们开始制作三进制的加法法则和乘法法则。

加法法则

因为三进制所涉及到的数字比较少,所以对于加法法则来说也是比较少的。

1+1=也就是在1的基础上,往后数一个数,参照第一张表,1往后数一数是2,所以1+1=2;然后看1+2=依照前面的思路,从1往后数两个数,便是10,所以1+2=10;同理2+2=也就是在2的基础上往后数两位,便是11,所以2+2=11

加法法则就是往后数个数,那同理乘法法则就是往后数成倍的个数。

乘法法则

由于三进制的基数太小,其中的乘法应用体现不出来,与加法法则的效果是一样的

基本运算

由于三进制的范围太小,在七进制运算的时候详细说

正常的七进制的运算

开始选择三进制是为了后面对进制进行变化的时候方便,结果体现不出来加法法则和乘法法则的实际使用效果了,这里就使用七进制来展示一下具体的使用方法,它们的操作是一样的。

首先,先写出一堆七进制的数,仔细观察还是能发现一些规律的,但是一定要按照数个数的思维去找规律。

接下来是加法法则和乘法法则

加法法则

依照前面数数的方式来从表里面找就可以了,这里用4+5=来举例,按照前面的方法,就是从4开始往后数5个数,便为12,其他的都是同样的方法。

乘法法则

乘法就是多次的加法,这里用2*3=来举例,2*3转换成加法就是两个3相加,也就是从3往后数3个数,便为6,所以2*3=6,其他的方法类似。

基本运算

进制的加减乘除运算依靠前面写出来的两个加发表和乘法表就可以满足了,一切依旧是查表,记住进制的本质就是查表。

加:23456+54356=

我们从最后一个位看,(这里一直都是说的第几位,因为个位十位等都是十进制才有的,其他进制并没有这么个叫法),是两个6相加,查表得15,所以最后一位结果为5,1向前进位;再看倒数第二位,两个5相加,查表的13,加上刚刚进位的1,通过查表可知结果为14,所以倒数第二位结果为4,1向前进位;4和3相加,查表得10,进位得11,结果为1,1向前进位;3和4相加,查表得10,进位得11,结果为1,1向前进位;2和5相加,查表得10,进位得11;所以最终结果为111145

减:5621-654=

看最后一位,1减4减不过,借位得11,11减4,查表可知4+4=11,所以最后一位结果为4;2被借位为1,1减5减不过,借位得11,11减5查表得3;6被借位为5,5减6减不过,借位得15,15减6查表得6;5被借位为4,所以最终结果为4634

乘:234*65=

看最后一位,4乘5,查表得26,结果为6,2进位;3乘5,查表得21,进位得23,结果为3,2进位;2乘5,查表得13,进位得15,所以第一个数得结果为1536;然后算到处第二位,同样的方法得2103;最后1536加21030,(乘法计算的最后两数相加是错位的,所以这里写成了21030)得22566

除法也是同样的方法。

变异的三进制运算

前面已经把正常情况下的进制转换和运算说清楚了,但为什么前面一直说它们是正常的,因为那些符合我们平常的运算概念,但是谁又规定三进制必须是0、1、2,我要是选!、@、#作为三进制的基本元素可以不?可以,那我使用2、0、1作为基本元素可以不?一点问题也没有,那我能不能使用三个图片来作为基本元素?也是没有问题的;而且在这样的情况下,还有一个好处,不知道你的进制规范的是看不懂其中具体的内容的,这也就是通过自定义进制元素的方式实现了所谓的进制加密

那我们就按照2、0、1作为基本元素来写一下这个情况下的三进制表示。

最后我们换一种方式来表示,再来感受一下进制

总结

进制的本质就是查表,进制的本质就是掰手指头数数。

公众号:无心的梦呓(wuxinmengyi)

posted @ 2020-03-10 14:02  信安本原  阅读(528)  评论(0编辑  收藏  举报