首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Java中的DataInput接口没有readUnsignedInt方法

为什么Java中的DataInput接口没有readUnsignedInt方法
EN

Stack Overflow用户
提问于 2016-03-24 16:50:42
回答 2查看 258关注 0票数 2

Java不支持无符号整数类型,在Java中表示无符号整数的最简单方法是使用更大的整数类型。

DataInput接口提供了读取无符号整数类型的方法-- readUnsignedByte返回shortreadUnsignedShort返回int

为什么这个接口没有返回longlong方法?有什么特别的原因吗?

Clarification:我知道Java8对无符号算术的支持。问题不是如何处理这个问题,而是为什么DataInput接口没有这样的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-24 17:54:39

DataInput/DataOutput对每个原语和字符串都有一个方法。

unsigned int不是一个原语,但是您可以执行以下操作,因为它是添加的。

代码语言:javascript
复制
long a = dis.readInt() & 0xFFFF_FFFFL;

dos.writeInt((int) a);

为什么这个接口没有返回很长时间的readUnsignedInt方法?

我想,最初的设计人员并不认为您需要一个,否则他们会添加一个unsigned int类型。

有什么特别的原因吗?

您可以添加很多东西(在我的库中,我添加了一些东西,因为我认为它们是有用的),但是设计师们似乎认为少就是多。

票数 1
EN

Stack Overflow用户

发布于 2016-03-24 16:53:58

我不知道为什么,但这不再是一个问题,因为现在有对未签名的ints的支持。你能做到的

代码语言:javascript
复制
long a = Integer.toUnsignedLong(r.readInt());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36205705

复制
相关文章

相似问题

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