大家看一下这个JAVA表达式,是如何计算的? ( 积分: 20 )

  • 主题发起人 主题发起人 studier
  • 开始时间 开始时间
S

studier

Unregistered / Unconfirmed
GUEST, unregistred user!
int i=-14;
System.out.println(~i);
大家看一下这个JAVA表达式,是如何计算的?
 
int i=-14;
System.out.println(~i);
大家看一下这个JAVA表达式,是如何计算的?
 
先把i转换为反码: 14 -> 0000,0000,0000,1110
最高位1表示是负数,0为正数,负数的反码是i的绝对值部分求反:
-14 -> 1000,0000,0000,0001(反码)
负数补码是反码的最低位加1,
-14 ->1000,0000,0000,0010
~(-14) ->1000,0000,0000,1101
输出13
~(-20) ->1000,0000,0001,0011
输出19
 
接受答案了.
 
后退
顶部