我需要让我的整数计数器具有1到6的值,包括时尚。即从1开始,我数到6并返回1.我想知道是否可以使用某种按位逻辑来实现。当然,如果声明如下,这是微不足道的,但我想知道一个班轮:)
int counter = 1;
for...
do something
if (counter++ == 7) counter = 1;
增加: 这就是我想要1个衬垫的原因:
byte output = (byte)((inputByte & 0xF8) | counter++);
答案 0 :(得分:3)
使用模运算符。
do something;
++counter; counter %= 7; ++counter;
要使用真实的按位运算,你的模数必须是2的幂,而不是这里的情况。
PS:如果您的计数器从0开始而不是1,那么您将不需要第二个++counter
,并会写出如下内容:
for (int counter = 0; (somecondition); ++counter, counter %= 7)
{
do something;
}
PPS:请注意,通常if
执行速度比模数更快。