C++  代码实现负数取绝对值  不使用abs函数

C++ 代码实现负数取绝对值 不使用abs函数

大佬提供的一段代码,根据计算及内部计算方式采用加法的方式实现数值取绝对值:涉及原码、反码、补码

int main()
{
    int x;
    if(x>0)
    {
        x*=-1;
    }
    int m = x>>(sizeof(int)*CHAR_BIT - 1);
    int n = (x^m) - m;
    
    return 0;
}

为了方便理解  提供一个帖子  写的很仔细挺好的:

https://blog.csdn.net/weixin_33769207/article/details/88005719