3

长话短说,我正在从一个文件中读取一些整数值,然后我需要将它们存储在一个字节数组中,以便稍后写入另一个文件。

例如:

int number = 204;
Byte test = new Byte(Integer.toString(number));

此代码抛出:

java.lang.NumberFormatException: Value out of range. Value:"204" Radix:10

这里的问题是一个字节只能存储-127 - 128,所以显然这个数字太高了。我需要做的是对数字进行签名,即值-52,它将适合字节。但是,我不确定如何做到这一点。

任何人都可以建议吗?

谢谢

4

3 回答 3

15

一个更简单的方法是强制转换它:

int number = 204;
byte b = (byte)number;
System.out.println(b);

打印-52

于 2013-05-17T15:12:02.287 回答
4

你可以投射它:

Byte test = (byte) number;
于 2013-05-17T15:12:04.513 回答
1

用这个:

  byte b = (byte) ((0xFF) & number);
于 2013-05-17T15:14:12.957 回答