当前位置:IT认证>软件水平

问题:[选择题]

[单项选择题] 执行下面程序后,结果是   public class Testrr {     public static void main(String args[]){      int i=0xFFFFFFF1;      int j=-i;      System.out.println("j="+j);    }   }


A.j=-15
B.j=-16
C.j=16
D.j=15

参考答案: D

  参考解析

【命题目的】考查负数在计算机中的表示方法。【解题要点】①负数在计算机中的表示形式是采用补码形式的。所谓补码:一般用十六位二进制来表示一个补码,二进制的第一位是符号位,剩下的十五位是数值位。如果数是正数,符号位取0,然后用本身的二进制作为这个数的数值位;如果是负数,符号位取1,然后把本身的二进制码每位取反,然后在末尾加一,便得这个数的数值位。②题目中给的inti=0xFFFFFFF1;用一个十六进制的数来表示二进制数,其二进制是1111111111110001,这样看是一个负数的补码,还原十进制,得0000000000001111,是-15。③题目中要求输出i得负数得int型,这样肯定是15。

微信端