gpt4 book ai didi

转换为无符号整数,然后转换回来,C

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

如果我有一个堆栈 S,其中填充了带符号的整数,我想执行以下操作:POP 两个值并将其转换为 unsigned int,然后将它们相加,然后推回一个 SIGNED 总和。我做了以下,但我不知道它是否正确:

unsigned int x = (unsigned int)pop(S)
unsigned int y = (unsigned int)pop(S)
int sum = x+y
push(S, sum);
pc++

我走在正确的轨道上吗?另外,有人可以向我解释一下显式转换吗?谢谢。

最佳答案

从您的代码完全按照您所说的去做的意义上说,您是正确的。真正的问题是这是否是您想要实现的目标。

转换为 unsigned int 的负数会变成一个非常大的正数。例如,在转换为 unsigned 之后,负数成为可以用 unsigned int 表示的最大正整数(试试看!)当您添加两个转换为 unsigned 的负数时,您肯定会溢出。如果这确实是您想要做的,那么您的代码肯定在做。

关于转换为无符号整数,然后转换回来,C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8359171/

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