程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Java中的Unsigned Int大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Java中的Unsigned Int?

开发过程中遇到Java中的Unsigned Int的问题如何解决?下面主要结合日常开发的经验,给出你关于Java中的Unsigned Int的解决方法建议,希望对你解决Java中的Unsigned Int有所启发或帮助;

根据您的工作,您可以将long视为64位值,将int视为32位值。大多数操作(尤其是readInt / Long writeInt / Long)都通过忽略符号来实现相同的功能。

您能否举例说明您对这些数字执行的操作,也许我们可以建议如何在不扩展类型的情况下执行相同的操作。

例如,++,-,+,-,*,==,!=,<<都与工作无关,而无论是否使用手势(即给出相同答案)。为>>您可以替代>>>

/,%,>,> =,<,<=和打印函数采用带符号的值,但是您应该能够解决这些问题(如果使用这些)。

例如

long unsignedA = 
long unsignedB = 
Boolean greater = unsignedA + Long.min_value > unsignedB + Long.min_value

编辑:为什么这样做?部分原因是Java没有上溢/下溢异常。

例如

byte unsignedA = 0;
unsignedA--; 
// unsignedA == FF, is this -1 or 255? Java assumes the former but you assume the later

byte unsignedB = unsignedA * unsignedA;
// unsignedB is -1 * -1 = 1 or (bytE) (255*255) = (bytE) 65525 = 1.

解决方法

我正在尝试实现一个现有的网络协议,该协议大量使用了Java不支持的Unsigned数据类型。我目前对每种数据类型执行的操作是,选择下一个更大的数据类型,以使无符号数字适合正数区域,然后使用字节移位获得所需的效果。由于这很@R_276_10197@,并且长期以来无符号,我必须使用比扩展类型重得多的BigInteger,我想知道是否有更好的方法来实现这一点?

大佬总结

以上是大佬教程为你收集整理的Java中的Unsigned Int全部内容,希望文章能够帮你解决Java中的Unsigned Int所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: