你声明一个变量为byte类型的,他就只能存贮在他规定的范围啊,

解决方案 »

  1.   

    怪我没说清楚,我的意思是要把0Xa8这个BYTE写到一个文件里,但是0XA8大于127,所以没办法直接申明byte b = 0xa8; 希望得到各位的指点.
      

  2.   

    那你不一定要声明为byte类型的啊
      

  3.   

    但程序要求写一个BYTE进去,也只能写一个BYTE 所以才郁闷阿..
      

  4.   

    直接造型即可
    因为0xa8是16进制,你想将它转为一个byte,自然是可以保证其值范围在byte可定义之内,所以,可以直接造型如下:
     long a = 0xa8 ;
     byte b = (byte)a ;
     System.out.println(b);
    若赋值的16进制数据超出byte定义范围,则会丢失数据信息,当然这无所谓,因为那样根本就不可能用一个byte可以存储的
      

  5.   

    你把他当成无符号的byte,自己算一下不就行了。
      

  6.   

    RE: vit()      能具体说说应该如何转换吗?
      

  7.   

    faint
    还不明白?
    前面不是说了直接造型即可拉
    你的需求是将一个16进制的数据,存入一个byte中
    case1:如果这个数据在-127到127之间,直接byte b = (byte)a ;如上造型就可以将一个16进制的数据转换成一个byte数据了。
    case2:如果这个数据不在-127到127之间,无论如何,一个byte是无法存储这个数据的,因此直接造型就会丢失高位数据信息,对于这种情况,你根本就无法达到你的目的,所以直接造型也是合理的。
      

  8.   

    long a = 0xa8 ;
    之后将a转换成字符串b=a.toString();
    之后调用b.getByte()之后将字节数组写到文件中。