控制无符号int的最大值

问题描述 投票:0回答:1

[如果我有一个4位无符号整数,则最大值为15。如果该值为0并减去1,则得到15。我可以将位长增加1,并且最大值为31,依此类推。等等。很好,但是我希望能够将最大值控制为2 ^ n-1以外的值。]

如何创建自定义类型,以便在实例化此最大值时可以控制该最大值,同时保持与unsigned int相同的效率?

我正在考虑的用例是,这样我就可以像对待循环链接列表一样对待元素数组,而无需使用链接列表。抱歉,这是一个愚蠢的问题!

[如果我有一个4位无符号整数,则最大值为15。如果该值为0并减去1,则得到15。我可以将位长增加1,并且最大值为31,依此类推。等等。 ...

java unsigned-integer
1个回答
0
投票

您可以使用模运算符%,它返回两个操作数之间的余数。例如,如果您希望最大值为13,假设您正在使用变量i进行索引,则可以执行array[i % 14],这将导致索引仅在0-> 13的范围内。不知道是否有办法使用此属性创建自定义类型,除非您创建了一个类并实现了加法和减法运算符的方法以创建与无符号整数相同的行为。例如:

© www.soinside.com 2019 - 2024. All rights reserved.