数字与进制
(某天晚上睡不着觉,就思考了一下一直困扰我很久的数字问题,并随笔记录了下来,以后有时间再整理吧,不懂之处还望自行思考)
我们生活中的数字大部分都是从1开始的(即1、2、3、4、5、6、7、8、9、10),很少有人去关注"0"这个数字,我们所接触的十二年义务教育也是如此,几乎没有哪个老师会刻意去强调"0"的作用,因为在日常的计算问题0发挥的作用很少几乎没有影响,只是一个计算结果的尾数而已,没有人会去过度的在意,这也导致了我们对数字的敏感度较低,例如:9-2=7,得出的结果人们第一眼想到的是7这个数字,可是经过9和2相减之后,结果7已经不是"7"这个数字,它真正代表的是9和2相差了7个(3、4、5、6、7、8、9)具有鲜活生命的数字,而不是7这个数字了,就好比9带领了0~8这几个小弟,2带领了0~1这两个小弟,突然有一天9不知道什么原因(或许是2吃喝嫖赌不干实事)想要把2给干掉,自然干掉2之后,9只剩下了3~8包括他自己7个数字;人们在处理加减(乘除是加减的变性)数字时往往不会关注结果数字的真正含义,这也导致在处理中学问题时的什么插树、分析问题时一眼看不出问题的所在,因为他们过度关注结果数字,但其实他已经不是一个数字了,它真正的意思是数字的个数;
回到计算机中,在我看来计算机是真正理解了数字,并真实发挥了数字的实际价值,因为它重新拾起了"0",为什么?一方面,因为科学家发现如果计算机中的空间从1开始算起的话会浪费0这个数字=>会浪费0所代表的空间,另一方面,失去了0对以后的计算机进行数据运算也会造成很大的麻烦。这从另一方面可以看出"0"这个数字是很重要的,我们都知道计算机中的世界是由"0"和"1"组成的,这几乎就是中国先贤文化中的两仪或阴阳,0和1构成了整个计算机世界(还好计算机没有智慧,不然的话它们会不会思考0和1是怎么来的,会不会诞生太极(或许就是人类))
(从零到一其实就是从无到有的过程,无、天地之始;有,万物之母)
其实真正的具有鲜活生命的数字只有二进制中的0、1,八进制中的0、1、2、3、4、5、6、7,十进制中的0、1、2、3、4、5、6、7、8、9,十六进制中的0-9、a-f(我并没有说10、11…,其实严格来说10到15不是数字只是进制的产物,计算机对这一点理解的非常深刻);当你真正思考了什么是数字后,对于计算机中的数组从下标0开始计算也就不足为奇了。十进制中真正的、具有生命的数字只有0~9,所谓的1~10,10~20…只是数字的个数。
接下来让我们来看看什么是进制:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|
平时大家经常看到的都是第二种表示数字的个数,第一种几乎很少出现,一方面小升初、初升高的老师不会刻意强调,我们本身也不会去刻意思考,拿过来用就行了,其最终结果就是我们对数字的敏感度降低了(至少我和我身边的人的经历如此,其他人就不知道了,如果你有一任老师曾经给你刻意强调过"0"的作用,那你无疑是幸福的!),给你一个减数、被减数和差的运算,你会立刻将差视为数字而不是减数与被减数之间(左开右闭)数字的个数,因为第二张表潜移默化的使我们也认为10、11、12…也是一个数字,我们所受的教育给我们灌输了这样的概念=>10就是一个数字。但其实所谓的10~无穷只是十进制所带来的结果,他不是一个真正意义上的数字
,其他进制同理(具有鲜活生命的数字只有二进制中的0、1,八进制中的0、1、2、3、4、5、6、7,十进制中的0、1、2、3、4、5、6、7、8、9,十六进制中的09、af)。
二进制
00 | 01 |
---|---|
10 | 11 |
00:0*20,首位只有0、1,2^0代表逢1个数,0是数字,1也是数字,因为是二进制所以下标为2
01:马上逢二进一,二 => 两个数字
10不是真正意义上的数字,它代表逢二进一,1*21+0*20代表逢2个数
11: 1*21+1*20=3,代表3个数字
我们有没有想过如果10、11也是数字的话,那么10代表的应该是三个数字(00、01、10)、11代表的应该是四个数字(00、01、10、11),但事实是10代表的是两个数字,11代表的是三个数字,这也从侧面印证了10、11是进制的结果,代表的是数的个数而不是真正意义上的数字;如果10、11是数字的话,那么0、1、10、11他们就构成了四进制了,所以下面的八进制、十进制、十六进制与二进制的本质理论与概念是一样的,即真正的数字只有那几个,其它的都是进制产生的结果 => 是数的个数。
000 | 001 |
---|---|
010 | 011(逢四进一,四 => 四个数字) |
100(110不是真正意义上的数字,它代表四个数字0、1) | 101 |
110 | 111 |
十进制
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 |
---|---|---|---|---|---|---|---|---|---|
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
… | |||||||||
90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
000 | 001 | 002 | 003 | 004 | 005 | 006 | 007 | 008 | 009 |
---|---|---|---|---|---|---|---|---|---|
010 | 011 | 012 | 013 | 014 | 015 | 016 | 017 | 018 | 019 |
… | |||||||||
090 | 091 | 092 | 093 | 094 | 095 | 086 | 097 | 098 | 099 |
100 | 01 | 02 | 103 | 04 | 05 | 06 | 07 | 08 | 09 |
110 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
… | |||||||||
990 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 |
只是列举了比较常用的二进制和十进制,仔细观察和思考上表就会发现,当逢进制进一时就是新一轮具有鲜活生命数字的循环,而进制的结果(10、11)就是代表数的个数,10代表0~9十个数字,100代表10又逢10(10次循环,00~09,10~19…90~99)又进一,
10=1*101+0*100; 10个数
100=1*102+0*101+0*100; 100个数
总结
所有的进制背后都有一个共同的特点,那就是真实的、鲜活的数字循环一遍后从新开始了新的轮回,例如十进制中的98:9代表0~9(10个数)经历9次轮回,8代表8这个真实数字,98的意思就是98个数,而不是98这个数字,在强调一遍,真实的数字只有那几个,其它的都是进制产生的结果、代表的是数的个数。
(目前一眼只能看到两位数字所能代表的东西,位数越多,进制所能代表的信息也越多也就很难一眼看出,还是要多加思考啊)