芯五行数什么?
这个问题很有意思,其实题主已经把自己绕进去了。“十进制”、“二进制”这些称呼实际上都只表示了计数的方法,而并没有真正反映计数的基数。因此以十进制表示的数实际上可以完全换算成以二进制所表示的数,反之亦然——两者只是表达方法的不同罢了。这本质上就像在问:“五音和七音的区别何在呢?”一样,只不过是换了个计数基底的表达方式而已。所以这其实是个很无聊的问题……但既然提出了,就稍微解答一下好了^_^ 所谓的“五行”,其实就是指金、木、水、火、土这五种物质,是古人对于宇宙万物的一种解释。这种解释实际上也影响了中医理论(如五脏配五行)等等。而在计算机领域中,人们通常用0和1这两种数码来表示事物的状态或过程,所谓“二进制”就是指每一位数码仅能用0和1两种数码表示。
那么现在的问题就变成了一个数学问题:如何将十进制数用二进制数表示出来?或者说二进制数如何表示十进制数? 这个问题的答案其实非常简单:二进制数只能表示2的幂次方。比如8位二进制数就可以表示从0到255这32个十进制数;同样,32位二进制数能表示的范围是从0到4294967295——也就是2的32次方减一。 而如果要求十进制数反过来也能用二进制数表示的话,问题就变得复杂了。因为二进制数本身只能表示无穷无尽的一个个排列组合,而我们要求的十进制整数却是有上限的。在这种情况下,我们就需要给每个十进制数加上一个前缀,表明它是正整数还是负整数,然后才能根据前面的算法将其转换为二进制数。否则的话,任何一位数码没有前面数值的限定,我们怎么知道它代表的是正数还是负数呢?比如-7这个十进制数和7这个十进制数相比,其绝对值大了6,但是在二进制数里它们却仅仅相差1,又怎么能区分它们代表的是负数还是正数呢? 这其实就相当于把原本很简单的问题复杂化了。如果我们不赋予每一个十进制数一个前缀的话,二进制数就不能准确表达它们的含义了。这时候,就必须引入新的基数了。