S studier Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-10 #1 int i=-14; System.out.println(~i); 大家看一下这个JAVA表达式,是如何计算的?
S studier Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-10 #2 int i=-14; System.out.println(~i); 大家看一下这个JAVA表达式,是如何计算的?
W wqyzsh Unregistered / Unconfirmed GUEST, unregistred user! 2005-11-10 #3 先把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
先把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