阅读下列代码 public class Test 2005{ public static void main(String args[]){ System.out.println(~(0xa5)&0xa

admin2009-03-15  25

问题 阅读下列代码    public class Test 2005{      public static void main(String args[]){        System.out.println(~(0xa5)&0xa

选项 A、0xa5
B、10
C、0x50
D、0xaa

答案B

解析 这段程序代码非常简单,就是在屏幕上输出表达式~(Oxa5)&Oxaa的结果。“~”和“&”是位逻辑运算符:按位取反运算符“~”的运算规则是对数据的每个二进制位取反,即把1变为0,把0变为1;按位与运算符“&”的运算规则是,如果两个操作数中,相应位都为1,则该位的结果为1,否则为0。
解答这道题,首先要把十六进制数Oxa5和Oxaa转换为二进制数的形式,转换的方法是把一位十六进制用四位二进制表示。因此,Oxa5的二进制形式为10100101,Oxaa的二进制形式为10101010。在位运算符中,“—”的优先级高于“&”。所以首先计算~10100101,其结果为01011010。然后再计算01011010&10101010,其结果为 00001010。最后将二进制数00001010转换为十进制数,即为10。因此,本题的正确答案是10。
转载请注明原文地址:https://jikaoti.com/ti/jVb0FFFM
0

最新回复(0)