首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Java中没有字节或短文字?

为什么Java中没有字节或短文字?
EN

Stack Overflow用户
提问于 2008-11-25 15:57:29
回答 3查看 18K关注 0票数 54

我可以通过将L附加到值来创建文字长;为什么我不能以某种类似的方式创建文字短或字节?为什么我需要在转换的时候使用int文本?

如果答案是“因为C中没有短文字”,那么为什么C中没有短文字呢?

这实际上不会以任何有意义的方式影响我的生活;写(短)0而不是0或其他东西很容易。但是这种不一致让我很好奇;这是当你晚上睡得很晚的时候会困扰你的事情之一。在某种程度上,有人做出了一个设计决定,使得可以为一些原始类型输入文字,但不是所有原始类型。为什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-11-25 16:09:45

在C语言中,int至少意味着具有CPU的“自然”字长,而long可能意味着“更大的自然”字长(后一部分不确定,但这也解释了为什么intlong在x86上具有相同的大小)。

现在,我的猜测是:对于intlong,有一个自然的表示形式,它完全适合机器的寄存器。然而,在大多数int上,较小的类型byteshort在使用之前无论如何都必须填充到CPU中。如果是这样的话,你也可以有一个演员。

票数 15
EN

Stack Overflow用户

发布于 2008-11-25 16:02:26

我怀疑这是一个“不要给语言增加任何东西,除非它真的增加了价值”的情况-它被认为增加了足够少的价值,不值得这样做。正如您所说的,这很容易绕过,坦率地说,无论如何都没有必要这样做(只是为了消除歧义)。

在C#中也是如此,在这两种语言中我都没有错过它。我在Java中缺少的是一个无符号字节类型:)

票数 8
EN

Stack Overflow用户

发布于 2008-11-25 16:04:13

另一个原因可能是JVM不知道short和byte。所有的计算和存储都是在JVM中使用整型、长整型、浮点型和双精度型来完成的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/317816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档