Int a=10; System.out.println(~a);程序的输出结果是?
3个回答
展开全部
-11 ,~符号表示按位取反,把10转槐前换为二进制数然后携喊按位取辩明野反再转换为十进制
追问
不是 -5 吗?
追答
正数以原码的形式存储,负数以补码的形式存储
有符号整数是按照最高位判断正负的(java中的数值除了char都是有符号的,都符合这个规则),如果x最高位是1,那么该数是负数,其值为 -((~x)+1),因此
11111111 11111111 11111111 11111111作为int型的话,因为最高位为1,所以其值为 -(0+1)=-1
根据上面的理论,~10=-(~(~10)+1)=-11
补码转换为反码加1后得源码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询