问题描述
谁能给我解释一下~5的计算过程。~-5我知道了,可是正数的计算处理过程好像不一样
解决方案
解决方案二:
5的补码是00000000000000000000000000000101取反得11111111111111111111111111111010取反后的结果依然是补码,首位为1,表示是负数,将该补码再反码+1后是原码得00000000000000000000000000000101+1-----------------------------------------------------------00000000000000000000000000000110这个数是0x1+1x2+1x4=6,所以5取反后是-6
解决方案三:
5是int(即使是short,byte等最终结果也一样),所以是00000000000000000000000000000101取反得:11111111111111111111111111111010这个数在int中就是-6(取反加1再前加负号)
时间: 2024-11-08 19:12:27