怪我没说清楚,我的意思是要把0Xa8这个BYTE写到一个文件里,但是0XA8大于127,所以没办法直接申明byte b = 0xa8; 希望得到各位的指点.
那你不一定要声明为byte类型的啊
但程序要求写一个BYTE进去,也只能写一个BYTE 所以才郁闷阿..
直接造型即可 因为0xa8是16进制,你想将它转为一个byte,自然是可以保证其值范围在byte可定义之内,所以,可以直接造型如下: long a = 0xa8 ; byte b = (byte)a ; System.out.println(b); 若赋值的16进制数据超出byte定义范围,则会丢失数据信息,当然这无所谓,因为那样根本就不可能用一个byte可以存储的
你把他当成无符号的byte,自己算一下不就行了。
RE: vit() 能具体说说应该如何转换吗?
faint 还不明白? 前面不是说了直接造型即可拉 你的需求是将一个16进制的数据,存入一个byte中 case1:如果这个数据在-127到127之间,直接byte b = (byte)a ;如上造型就可以将一个16进制的数据转换成一个byte数据了。 case2:如果这个数据不在-127到127之间,无论如何,一个byte是无法存储这个数据的,因此直接造型就会丢失高位数据信息,对于这种情况,你根本就无法达到你的目的,所以直接造型也是合理的。
long a = 0xa8 ; 之后将a转换成字符串b=a.toString(); 之后调用b.getByte()之后将字节数组写到文件中。
因为0xa8是16进制,你想将它转为一个byte,自然是可以保证其值范围在byte可定义之内,所以,可以直接造型如下:
long a = 0xa8 ;
byte b = (byte)a ;
System.out.println(b);
若赋值的16进制数据超出byte定义范围,则会丢失数据信息,当然这无所谓,因为那样根本就不可能用一个byte可以存储的
还不明白?
前面不是说了直接造型即可拉
你的需求是将一个16进制的数据,存入一个byte中
case1:如果这个数据在-127到127之间,直接byte b = (byte)a ;如上造型就可以将一个16进制的数据转换成一个byte数据了。
case2:如果这个数据不在-127到127之间,无论如何,一个byte是无法存储这个数据的,因此直接造型就会丢失高位数据信息,对于这种情况,你根本就无法达到你的目的,所以直接造型也是合理的。
之后将a转换成字符串b=a.toString();
之后调用b.getByte()之后将字节数组写到文件中。