-63&0xFF

问题描述:

-63&0xFF
-63 换成 2进制后是 10111111,
0xFF换算后是011111111,
10111111
011111111 按照同为1则为1的算法最终为 010111111,是191,但计算机结果为193,求详解错误位置

-63是负数,负数在计算机中用其补码表示
所以-63的补码为除符号位其余位取反后加1;
-63的补码为11000001
11000001&011111111=011000001=193