[单项选择题] 执行下面程序后,结果是   public class Testrr      public static void main(String args[])      int i=0xF

11 查阅

[单项选择题] 执行下面程序后,结果是   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,然后把本身的二进制码每位取反,然后在末尾加一,便得这个数的数值位。②题目中给的int i=0xFFFFFFF1;用一个十六进制的数来表示二进制数,其二进制是1111 1111 1111 0001,这样看是一个负数的补码,还原十进制,得0000 0000 0000 1111,是-15。③题目中要求输出i得负数得int型,这样肯定是15。

计算机考试