Java 中的无符号短路

2022-08-31 14:21:44

如何在 Java 中声明值?unsigned short


答案 1

你不能,真的。Java 没有任何无符号数据类型,但 .char

诚然,你可以使用 - 它是一个16位无符号类型 - 但在我看来这将是可怕的,因为显然意味着文本:当代码使用时,我希望它用于UTF-16代码单元,表示程序感兴趣的文本,而不是与文本无关的任意无符号16位整数。charcharchar


答案 2

如果您确实需要一个正好为 16 位的值:

解决方案 1:使用可用的带符号短,不要再担心符号,除非您需要执行比较(<,<=,>,>=)或除法(/,%,>>)操作。请参阅此答案,了解如何像处理无符号数字一样处理有符号数字。

解决方案 2(解决方案 1 不适用):使用int的较低16位,并在必要时删除带有&0xffff的较高位。