byte b=(byte)0xaf;
结果输出b是-81;
溢出了,想问下大侠们。怎么得到这个结果的

解决方案 »

  1.   

    byte存储的大小问题....   你讲Oxaf转换成10进制后(175)就知道了,已经超过了byte的范围127,就会变成负的最小.
       然后加上175-127的值就是-81了
      

  2.   

    还有个问题3.float a=20亿50  float b=20亿 结果a等于b。上课还知道的下课就忘了。刚学java
      

  3.   

    byte 是有符号的数,0xaf有符号的表示 1010 1111,第一位是符号位 为负 而计算机中 负数都是 按照补码的形式存储的 所以对其求补码 1 1010001, 这个就是-81了
      

  4.   

    0xAF->二进制10101111->去掉符号位0101111->取反1010000->加1->1010001->十进制81->加上符号-81