gpt4 book ai didi

c - 无符号值的不等式

转载 作者:行者123 更新时间:2023-12-01 12:57:15 25 4
gpt4 key购买 nike

我一直对以下情况感到疑惑。

L_1 > L_2 为无符号值(在本例中为 size_t)。 A 也是同一类型。

这个测试是否有效:

if( A > (L_1 - L_2) )
{
// do stuff
}

或者它等同于

if( 0 > (L_1 - L_2) - A )
{
// do stuff
}

if( 0 < A - (L_1 - L_2) )
{
// do stuff
}

简化为

if(!(A - (L_1 - L_2) ))
{
// do stuff
}

因为一切都是unsigned。一旦 A != L_1 - L2,最后一件事就会“做事”,这不是我想要的。

最佳答案

我们知道有很多值 A > (L_1 - L_2) 为真。例如,L_1 == L_2A == UINT_MAX

但是 0 > (L_1 - L_2) - A 始终为假。由于 L1L2A 是无符号操作数 (L_1 - L_2) - A 是无符号表达式。无符号表达式的值始终为 >= 0

关于c - 无符号值的不等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17830462/

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