gpt4 book ai didi

比较有符号数和无符号数

转载 作者:太空狗 更新时间:2023-10-29 15:32:37 26 4
gpt4 key购买 nike

例如说 if (-1>2) 时。此条件为真,因为有符号值 (-1) 已转换为我知道的无符号值。但我想知道的是它是如何转换的?如果它的值发生变化,它将是什么?

最佳答案

When for example saying if (-1>2). This condition is true because the signed value (-1) is converted to an unsigned value I know that.

不,不是。

两个整数常量(准确地说,正如@KeithThompson 的评论中指出的那样,前一个操作数是常量表达式,因为 - 在这种情况下充当一元运算符,改变其操作数的符号)具有类型int(即 signed int),因此正如@amdn 指出的那样,没有什么可以转换的(因为操作数的类型完全相同),if 的结果 的条件评估为 0(或 false)。

您的意思可能是 -1 > 2U,这是另一回事。由于通常的算术转换规则(通俗地称为整数提升),int 的操作数被提升为unsigned 类型,产生一些大数,这可能大于 2U(或者在纯数学意义上只是 2)。更具体地说,unsignedint 类型都属于同一级别,但由于这些规则,在这种情况下,有符号对应项(即操作数)被提升为无符号。

关于比较有符号数和无符号数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26962568/

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