首页 > 技术文章 > lowbit(x)

qie-wei 2018-07-27 09:59 原文

int Lowbit(int x)
{
    return x&(-x);
}

lowbit当中x,-x,补码,反码,傻傻分不清楚。我们先看看两个二进制数相减的问题

两个二进制数相减的相关问题

两个二进制数相减的时候可以把符号括起来转化为加法,比如010-111,这时候就可以写成010+(-111),要将111转化为补码再相加,所以010+001=011

即,在求 -x 的时候就是求 x 的补码,x的补码等于x取反加1.

推荐阅读