c – 递减和模数 – 如何在一行代码中递减负值

c – 递减和模数 – 如何在一行代码中递减负值,第1张

概述我发现增加有限变量的方法非常温和,只需: ++i %= range; 不幸的是,这个技巧不适用于减量,因为-1%v == -1. 我怎样才能在C中改进这个? 为了避免负模数行为,您可以先将其设为正数: i = (i - 1 + range) % range; 但是,如果范围大于INT_MAX的一半,这是不好的. (或者我的任何类型). 这似乎更简单: i = (i ? i : range) - 1 我发现增加有限变量的方法非常温和,只需:

++i %= range;

不幸的是,这个技巧不适用于减量,因为-1%v == -1.

我怎样才能在C中改进这个?

解决方法 为了避免负模数行为,您可以先将其设为正数:

i = (i - 1 + range) % range;

但是,如果范围大于INT_MAX的一半,这是不好的. (或者我的任何类型).

这似乎更简单:

i = (i ? i : range) - 1;
总结

以上是内存溢出为你收集整理的c – 递减和模数 – 如何在一行代码中递减负值全部内容,希望文章能够帮你解决c – 递减和模数 – 如何在一行代码中递减负值所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1216071.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存