个人对于进制本质的理解就是:查数。
以十进制为例子,比如在十进制里面的1+1其实就是从一往后数一个数,对于1+2,就是从1往后面数两个数,对于4*5,就是从4开始往后面连续数5次每间隔4的数字。
对于进制的类别,完全可以说是自定义的,比如二进制、八进制、十进制、十六进制,对于进制里面的符号也完全可以自己定义。
比如
正常情况下面的所有进制,从小到达基本都是:1,2,3…依次加一,对于十六进制,加到10就换成了字母,从a开始依次以一个位别相加,a,b,c,d…都是每隔一个单位长度依次相加的,这只是规定,并不是一定,我们也可以创造自己的体系,比如
十进制版本一:
1 3 4 5 7 9 d s o 对应 1 加到 9
所以说,你现在看到的1+1=2,其实是基于一个框架下面的运算法则,你也可以改成1+1=3
正常十进制 :1+9 = 10
十进制版本一: 1+ o = 10
o对应于9,从这里也可以看出,数字只不过是符号,没有绝对的,如果要是绝对的话,那么就要加一个前提,在规定好的算术框架下面。
对于进制的独特性还有普遍性,所以你可以用进制建立自己的世界,进而建立一个别人难以破解的密码。
对于不同进制的运算法则,其实是一样的。
乘法,中国的孩子接受过九年义务教育,背过九九乘法表格,对于十进制来说,那么我们可以思考一下,对于八进制来说,是不是有七七乘法表格。
对此,我们做出表格:
再对比一下下面两列数字:
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 10
上面一列是十进制,下面一列是八进制,十位数或者八位数为零的时候,由个位数慢慢的加到进位,两者都为10,所以在计算八进制的时候,我们满8取一,如何快速计算呢?
5 * 7 在八位数里面等于多少?
5x7在十位数里面是35,35里面有4个八,再多出一个3,所以 5* 7 = 43 在八位数里面的表示。
除法就是乘法
比如
234 ÷ 004
首先,最高位的2除不动4,那就借一位,也就是23,多少乘以4接近23?在八进制的情况下,一个八就是10,一个八相当于两个四,所以10就是两个四,四个四就是20,五个四就是24,超过23,所以可以确定,结果的最高位就是4,剩下34,同样的原理,六个四就是30,七个四就是 34,所以,在八进制的情况下,234 / 4 = 47.
同理计算 234 / 5 ,2除以5不够,多拿一位,23,一个五就是5,两个五就是12,三个五就是17,四个五就是24,24大于23,所以最高位就是3,23 - 17 = 04,最低位还有个4,所以再次计算44 除以 5 等于 7 余 1.