我四处张望,似乎找不到这个看似简单的问题的答案: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/