byte b;
int i=266
b=(byte)i;
b 的值是多少??

解决方案 »

  1.   

    b的值是10
    i == 266 == 0x010A;
    b 截取后面一个字节,就是0x0A,也就是10了
      

  2.   

    jamesfancy(▲) 边城狂人 <Java|C++] (★) ( ) 信誉:116    Blog 不是已经说得很清楚了么?
      

  3.   

    我也不大懂,反正你调一下不就答案出来了吗?
    public class b {
        public static void main (String[] args){
         byte b;
         int i=266;
         b=(byte)i;
         System.out.print(b);
    //     b的值是10
    //     i == 266 == 0x010A;16进制
    //             b 截取后面一个字节,就是0x0A,也就是10了
        }
    }
      

  4.   

    进行(byte)的强制转换的时候,只是简单的截取最低的一个字节,然后把它翻译成一个byte型的值
    266 的十六进制形式为 0x10A,取出最低一个字节就是0x0A 也就是 0000 1010,这个翻译成byte就是10,所以你的输出就是10
      

  5.   

    byte 的取值范围是多少??????????????
      

  6.   

    如果用Eclipse的话,别的IDE我不知道,凡是显示的赋值,比如说,byte b = 232;
    是会出错的,当然如果你用运算符它就不知道 byte b = 127,c = b +1;,毕竟这个东西是应该Programmer自己注意的。
    所以,给Eclipse做广告,用Eclipse吧,you will like it,^_^。
      

  7.   

    b=(byte)i,是强制类型转换,取最后一个字节(8位).
    byte 的取值范围是-128到+127之间.
      

  8.   

    在机器里面转化成二进制,为方便起见写成16进制,不是什么八进制.
    byte是字节型,范围是-128到+127之间.超过这个范围机器默认取最后一个字节.即二进制的最后八信位.够明白了吧.