我四处张望,似乎找不到这个看似简单的问题的答案:C(位)中“+”或“-”到底是什么?

例如,将1加到11111111 11111111 11111111 11111111时的表示是什么?

我问这个是因为我正在阅读一些代码,但我不知道该怎么办

 ~0 + 1

是在做。我的意思是,我们不能在4294967295上加1,对吗?

谢谢!

最佳答案

我们当然可以。由于您未指定任何文字的类型,因此假定为“int”。如您所指示,~0-1,而-1 + 1是零。

另一方面,如果这些是无符号数字,则说明整数溢出。 PC内部的实际添加指令仍然返回零,它只是设置了一个“进位”标志来让C知道发生了奇怪的事情。在C规范中,整数溢出的结果是不确定的,因此您/可能/为零,但您不能依赖它。

关于c - 简单: “+”运算符在做什么(C位)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12869900/

10-11 18:03