Java不支持无符号整数类型,在Java中表示无符号整数的最简单方法是使用更大的整数类型。
DataInput接口提供了读取无符号整数类型的方法-- readUnsignedByte返回short,readUnsignedShort返回int。
为什么这个接口没有返回long的long方法?有什么特别的原因吗?
Clarification:我知道Java8对无符号算术的支持。问题不是如何处理这个问题,而是为什么DataInput接口没有这样的方法。
发布于 2016-03-24 17:54:39
DataInput/DataOutput对每个原语和字符串都有一个方法。
unsigned int不是一个原语,但是您可以执行以下操作,因为它是添加的。
long a = dis.readInt() & 0xFFFF_FFFFL;
dos.writeInt((int) a);为什么这个接口没有返回很长时间的readUnsignedInt方法?
我想,最初的设计人员并不认为您需要一个,否则他们会添加一个unsigned int类型。
有什么特别的原因吗?
您可以添加很多东西(在我的库中,我添加了一些东西,因为我认为它们是有用的),但是设计师们似乎认为少就是多。
发布于 2016-03-24 16:53:58
我不知道为什么,但这不再是一个问题,因为现在有对未签名的ints的支持。你能做到的
long a = Integer.toUnsignedLong(r.readInt());https://stackoverflow.com/questions/36205705
复制相似问题