如何将n=52(110100)转换为表示其2的补数(即12(001100))的十进制数?是否有使用位操作的公式/技巧(使用c++)?
如果x-bit然后,2^x - n
将给出n的2的补码在小数。
在您的示例中,您考虑的是6位数字,因此64 - 52
=12
是52
的2的补码。
还需要注意的是,52
应该被解释为-12
,用符号6位表示法表示,用2的补码表示。