我就在这出错的,~1得到的是-2而非0,后来改成了abs(1&(n>>(i-1))就AC了
abs(1&(n>>(i-1))
似乎更原码反码啥的有关,本人才疏学浅,贴个网上结论:
取反运算简便方法 也可以说是适合人类运算的计算方法: 如对 a 按位取反,则得到的结果为 -(a+1) . 此条运算方式对正数负数和零都适用。