为什么我们使用其他既不是二进制(对于计算机)也不是小数(对于人类)的基数?
计算机最终以二进制形式表示它们,而人类强烈希望获得其十进制表示形式。为什么不坚持这两个基础?
为什么我们使用其他既不是二进制(对于计算机)也不是小数(对于人类)的基数?
计算机最终以二进制形式表示它们,而人类强烈希望获得其十进制表示形式。为什么不坚持这两个基础?
Answers:
八进制(base-8)和十六进制(base-16)数字是大多数人使用的二进制(base-2)系统计算机和十进制(base-10)系统之间的合理折衷。
计算机不善于使用多个符号,因此以2为基数(您只有2个符号)适合它们,而较长的字符串(数字多的数字)的问题就少了。人类具有多个符号非常好,但是记住较长的字符串却不好。
八进制和十六进制具有人类优势,它们可以使用许多符号,同时仍可以轻松地在二进制之间来回转换,因为每个十六进制数字代表4个二进制数字(),每个八进制数字代表3(8 = 2 3)。我认为十六进制胜过八进制,因为它可以轻松地用于表示字节和16/32/64位数字。
我们为了方便和简洁而使用它们。
十六进制和十进制确实是二进制的出色压缩表示形式。十六进制尤其适合于压缩形式的内存地址。每个八位数字直接映射到3个二进制位,每个十六进制数字映射到4个二进制位。这是由于基数(8和16)是2(和2 4)的幂。例如,我可以将二进制01101001编写为十六进制69,或者将其扩展为前导零(如oct 151)。
因此,假设您需要64位内存地址。您可以查看所有64个二进制位,或者将其压缩为16个十六进制数字。通常,您不需要比较几个地址即可查看它们是否相同或相邻。您希望查看64位还是16位?
正如其他答案已经提到的,出于不同的目的和约束,可能会有不同的符号。记号实际上是一种编码为字符序列的编码,从对算法和数据结构的研究中我们知道,根据我们想对它进行处理,可以采用多种方法对抽象概念(例如列表或集合)进行编码。在这种情况下,主要是算法上的方便。
考虑数字表示时,同样适用。尽管在某些应用程序中可以使用陌生的表示形式,但在计算机内部,所有内容都是最低级别的二进制文件。
在计算机外部,我们使用任何人类可以理解的表示形式,具体取决于人类对表示的价值类型的方便程度。二进制表示形式通常太长且结构不清晰,以致于无法轻松读取和写入,因此置于十六进制或八进制形式。选择通常可能与以二进制字构造信息的方式有关,不一定要代表数字。
但是,仅考虑数字(即数字表示)时,有必要查看其他数字表示系统以了解 主要因素是:生理,习惯和便利性。便利性当然是创造多样性的主要因素,因为它取决于使用环境。
问题的主体似乎绝不限于计算机,人类已经并且仍在使用其他几种计数系统。其中一些甚至在计算机中使用,例如在处理长整数(更不用说非整数)时。
首先要说明的是,当人们以数千或数百万为单位时,仍将其视为十进制,因为它们的乘方为10。一个可能的原因可能是用于表示数字的符号数量(尽管这是有争议的问题,我们将在其他系统上看到)。
然后,对于人类,他们在基础5中使用了几种系统,称为 五进制系统。实际上,这些系统中的大多数都有两个基数,第二个是2或4,与基数5交替,这使它们等效于10(十进制)或20(十进制)。猜猜那是哪里来的:)
这些双基系统称为双五进制或四五进制系统。很少使用纯五元。
罗马数字可以看作是双五进制系统(这是如何使用它们进行算术的指示)。中国和日本的算盘使用双进制。玛雅人使用四元体。
使用系统的原因可能很多。一个很好的理由是它是第一个本地设计,并且人们现在已经习惯了。例如,您可能还会想知道为什么说英语的人在尝试测量距离时仍然使用极其奇怪的数字系统。您可能会争辩说这是多个单位的问题,而不是编号,但这是一个很微不足道的说法。数字主要用于衡量事物。
保持系统的其他原因是在给定上下文中的便利性。在不同符号的数量或算盘上的位置与形成足够大的数字所需的符号出现的数量之间可能需要权衡。Base 2使用2个不同的符号,但是有很多次出现,对于材料表示而言可能不方便。原始的以20为基数的数字将需要二十个符号,以及非常大的乘法表,人们不会记住。但是二元或四元系统更易于管理,尤其是构建算盘时。纯粹的五元系统可能会更好,但是它违反了基于生理的习惯和直觉。当我们不知道更好的情况时,能够用手指指点总是很高兴。
但这还不是全部。
一个非常古老且非常常见的系统是用于测量时间和角度的六进制系统(但我们知道,它们通过地球自转而相互关联)。它使用基数60,但不使用60个符号,因为这太多了。因此,它依赖于另一个系统来表示其合成符号(例如十进制)。
圆可分为与60度角相对应的6部分,这是用等边三角形最简单的方法。然后,每个度数是60分钟的弧度,每个度数分为60秒。
根据维基百科
它起源于公元前3世纪的古代苏美尔人,一直传到古代的巴比伦人,至今仍以修改后的形式用于测量时间,角度和地理坐标。
考虑到起源,这是一个非常方便的系统,而此时数学几乎还没有开始。60°角不仅易于绘制,而且60°有很多因素,因此它可以用整数除以多种方式,而没有余数。
但是还有其他方法可以达到60,例如巴比伦人的 the 氏三元体系。
为什么我们仍然使用六进制系统。我想我们只是习惯了,我们可能有太多相互矛盾的问题,无法完全证明更改是合理的。
有趣的是,编号系统和单位系统之间存在许多相互作用。但这是可以预期的,因为度量是数字的主要角色。在内存大小的十进制和二进制度量之间的对立中这是很明显的。
计算机可以理解二进制数字,而二进制数字的权重为2的幂,因此,代表数字的数字位数可能会很大,具体取决于数字。
假设十进制的64位可以由7位表示,而要表示数字5000,则需要13位。
八进制和十六进制数系统是表示二进制数的紧凑方式。
[What advantage is there to using a base different from ten or (a power of) two?]
如何-或您如何解释Why not stick to [bases 2 and 10]?
??