最初我对 Java 决定指定这一点感到惊讶byte
是有符号的,范围是-128..127
(包括的)。我的印象是大多数 8 位数字表示形式都是无符号的,范围为0..255
相反(例如IPv4 点十进制表示法 http://en.wikipedia.org/wiki/Dot-decimal_notation).
那么詹姆斯·高斯林是否曾被要求解释他为何做出这样的决定?byte
已签署?权威编程语言设计者和/或评论家之间过去是否对这个问题进行过值得注意的讨论/辩论?
看来简单是主要原因。从这次采访 http://www.gotw.ca/publications/c_family_interview.htm:
Gosling:对于我来说,作为一名语言设计师,我现在并不真正把自己当成一名语言设计师,“简单”真正的最终含义是我是否可以期望 J. Random Developer 将规范牢记在心。例如,这个定义表明,Java 就不是——事实上,许多这些语言最终都会出现很多极端情况,而没有人真正理解这些情况。对任何 C 开发人员进行有关无符号的测验,很快您就会发现几乎没有 C 开发人员真正了解无符号的情况以及无符号算术是什么。诸如此类的事情使 C 变得复杂。我认为 Java 的语言部分非常简单。您必须查找的图书馆。
我最初的假设是,这是因为 Java 根本没有无符号数字类型。为什么要byte
是一个例外吗?char
是一个特殊情况,因为它必须表示 UTF-16 代码单元(感谢 Jon Skeet 的引用)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)