gpt4 book ai didi

c - 累积变量时检测无符号溢出

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:40 24 4
gpt4 key购买 nike

<分区>

我有两个无符号的 32 位整数,称它们为 x 和 y。我想通过看似随机的 uint32 值定期增加两个 uint32。 x 和 y 会累加,我希望它们继续累加直到达到极限,此时我希望它们从 0 + 如果它们没有溢出时本应添加的值开始。

假设代码如下:

//This would be called, say every 5 seconds
void increment_vals(uint32_t *x, uint32_t *y, uint32_t x_inc, uint32_t y_inc)
{
*x += x_inc;
*y += y_inc;

if (x overflowed || y overflowed)
{
*x = x_inc;
*y = y_inc;
}
}

所以基本上我的问题是:我怎么知道 x 或 y 何时溢出并需要重置?我应该在递增之前只存储 x 和 y 吗?如果结果小于原始值,那么它一定已经溢出了?这有保证吗?

谢谢。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com