gpt4 book ai didi

c - C 中的无符号和有符号除法

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:10 25 4
gpt4 key购买 nike

在我的程序中,两个变量被声明为有符号长整型变量(假设在 32 位机器上是 X 和 Y)并且它们被一个除以另一个(X/Y)。

最终值被分配给一个无符号长变量(假设为 Z)。我不确定这是正确的还是错误的分配。我只是在调试某人编写的代码。我猜这可能会导致溢出或未定义状态。

在以下四种情况下会发生什么,

Z =+X/+Y  
Z =+X/-Y
Z =-X/+Y
Z =-X/-Y

我知道 %u 代表无符号,%d 代表整数。我的问题是关于在上述四种情况下 Z 中将存储什么值。

如有任何帮助,我们将不胜感激。

最佳答案

如果您的变量已签名,则一切正常。如果除法结果为负数,之后可能会发生(不需要的?)转换。

使用包含无符号值的表达式会更痛苦,例如

(1U-2)/10

给出意想不到的结果。

关于c - C 中的无符号和有符号除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412974/

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