int Lowbit(int x)
{
return x&(-x);
}
lowbit当中x,-x,补码,反码,傻傻分不清楚。我们先看看两个二进制数相减的问题
两个二进制数相减的相关问题
两个二进制数相减的时候可以把符号括起来转化为加法,比如010-111,这时候就可以写成010+(-111),要将111转化为补码再相加,所以010+001=011
即,在求 -x 的时候就是求 x 的补码,x的补码等于x取反加1.
int Lowbit(int x)
{
return x&(-x);
}
lowbit当中x,-x,补码,反码,傻傻分不清楚。我们先看看两个二进制数相减的问题
两个二进制数相减的相关问题
两个二进制数相减的时候可以把符号括起来转化为加法,比如010-111,这时候就可以写成010+(-111),要将111转化为补码再相加,所以010+001=011
即,在求 -x 的时候就是求 x 的补码,x的补码等于x取反加1.