c - 环绕整数的最优雅方式

标签 c integer

这是调用者任务在发送消息时分配的 16 位无符号值。对于每条新消息,值递增 1,最终循环并产生序列 0、1、2、……65533、65534、65535、0 等。所以我需要一个计数器来查找目标。我需要帮助来获得最有效的环绕方式。例如,如果当前值为 65534 而我的目标计数为 5,我需要一个函数来环绕并将目标设置为正确的值。

最佳答案

如果您使用的是 unsigned int 计数器,那么您可以简单地执行 (x + 5) & 0xffffU - 无需检查溢出,因为 unsigned 中的算术类型在 C 中定义为环绕,无符号类型必须使用纯二进制表示。

关于c - 环绕整数的最优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20257210/

相关文章:

Java 反射 .getMethod int 与 Integer

arrays - 如何对 Int 的数字求和

c++ - 接收所有使用 C 套接字发送的数据

c - scanf() 跳过变量

java - 投票系统java,宣布获胜者

java - for循环中增量整数不会增加2

c - 给定3个整数,每个整数执行一个数学运算。输入任何整数并执行其任务,而无需使用比较语句。

c - 为什么我的提示第一次重复两次?

c - 如何破解弱化的 TEA 分组密码?

根据文件中的数字创建新变量 - C