2个回答
展开全部
-5
首先我们现在的机器是32位的(楼主可以不必要理会)
所以4的二进制为
0000 0000 0000 0000 0000 0000 0000 0100
而它的取反是
1111 1111 1111 1111 1111 1111 1111 1011
可以发现最高位是1,所以是负数(因为是int型,如果是unsigned就不能说是负数)。
但是,还要通过补码的形式进行输出(谭浩强第二章有说)
补码是:按位取反再加1
所以也就是把1111 1111 1111 1111 1111 1111 1111 1011再取反
成0000 0000 0000 0000 0000 0000 0000 0100
然后再加1
就成0000 0000 0000 0000 0000 0000 0000 0101
所以得到答案为-5
首先我们现在的机器是32位的(楼主可以不必要理会)
所以4的二进制为
0000 0000 0000 0000 0000 0000 0000 0100
而它的取反是
1111 1111 1111 1111 1111 1111 1111 1011
可以发现最高位是1,所以是负数(因为是int型,如果是unsigned就不能说是负数)。
但是,还要通过补码的形式进行输出(谭浩强第二章有说)
补码是:按位取反再加1
所以也就是把1111 1111 1111 1111 1111 1111 1111 1011再取反
成0000 0000 0000 0000 0000 0000 0000 0100
然后再加1
就成0000 0000 0000 0000 0000 0000 0000 0101
所以得到答案为-5
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询