首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于处理低于最小允许值的余数运算符的等效操作

用于处理低于最小允许值的余数运算符的等效操作
EN

Stack Overflow用户
提问于 2020-06-19 14:53:15
回答 1查看 51关注 0票数 0

我在一个从0到5的循环中有一组索引。如果用户指定的索引大于5,例如7,则应该返回索引7-6=1。如果指定的索引小于0,ex -2,则应返回索引-2+6=4。

在第一种情况下,我们可以使用余数运算符来处理大于5的值:

代码语言:javascript
复制
int inputValue = 7;
int result = inputValue%6;

但是,是否有类似的操作可以很好地处理指定索引低于0的情况?一个棘手的解决方案是:

代码语言:javascript
复制
if (inputValue < 0)
   result = inputValue+6;
else
   result = inputValue;

这只处理大于或等于-6的值

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-19 15:02:17

如果你将一个负数乘以6,你会得到一个负数,但你只需要在它上面加上6就可以得到你的正余数:

代码语言:javascript
复制
int result = (inputValue % 6) + (inputValue < 0? 6 : 0);

或者,使用将6与正余数相加的事实来得到具有相同余数的数字:

代码语言:javascript
复制
int result = ((inputValue % 6) + 6) % 6;

希望这能有所帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62464818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档