先来看一个简单的问题:小孩子都知道数数:1,2,3,4,5,6,7,8,9,10,可为什么要这样数呢?为什么不是1,2,3,4,5,6,10呢?
一种比较流行的解释是因为人类有10个手指:
?...数字 0 与正整数
0这个数字其实有非常重要的意义,可能大家都没想过这个问题,没关系,我们来看两个不同的数字系统:阿拉伯数字和罗马数字:
?...这种设计下会有一个奇怪的表示:0000表示0这没什么问题,1000会表示 -0,这会导致出现-0这样的数字,其实 0 和 -0 不应该有什么区别。...最初的计算机设计者真的可以有很多表示数字的方法,采用反码表示数字的计算机系统在历史上真的出现过!!!但这些表示方法不约而同都有一个问题,那就是两数相加。...再来看看反码,2为0010,-2为1101,两数相加:
?
1111在反码表示下为-0,虽然-0不够优雅,但好歹和反码表示法本身没有矛盾,这大概就是为什么早期会有计算机采用反码表示数字的原因。