3

簡単に言うと、あるファイルからいくつかの整数値を読み取っています。後で別のファイルに書き込むために、それらをバイト配列に格納する必要があります。

例えば:

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

このコードは以下をスローします:

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

ここでの問題は、1 バイトが -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 に答える