相关疑难解决方法(0)

+运算符如何在C中工作?

当了解如何原始的运营商,如+,-,*/用C实现,我发现从下面的代码片段一个有趣的答案.

// replaces the + operator
int add(int x, int y) {
    while(x) {
        int t = (x & y) <<1;
        y ^= x;
        x = t;
    }
    return y;
}
Run Code Online (Sandbox Code Playgroud)

似乎此函数演示了如何+在后台实际工作.但是,理解它对我来说太困惑了.我相信这样的操作是使用编译器生成的汇编指令很长时间完成的!

我的问题是:+运算符是否作为MOST实现上发布的代码实现?这是否利用了两个补码或其他依赖于实现的功能?如果有人能解释它是如何工作的,我会非常感激.

嗯...也许这个问题在SO上有点偏离主题,但我认为通过这些运算符来看是有点好的.

c operators bitwise-operators

80
推荐指数
9
解决办法
6720
查看次数

标签 统计

bitwise-operators ×1

c ×1

operators ×1