2011-06-23 7 views
0

integerbyteに変換し、バイトをファイルに書き込む必要があります。ただし、128より大きい数値を負の数値に変換するときに変換します。 私は無署名のcharを使用する必要がありますが、私は方法を知らない。 C++ではunsignedと書いていますが、どのようにJavaになっていますか?どのように私は無署名のJavaで使用することができます

+0

Javaには「符号なし」はありません。あなたは何をしようとしているのか、そしてあなたが得ている結果についてより具体的になりますか? –

答えて

1

はバイトの記述を参照してください、Javaはデフォルトでunsigned型を持つものではありませんが、それを回避することができますが、問題ではありませんデータが書かれているので、それはあなたがwrite(int)writeByte(byte)を使用するかどうかは関係ありませんまだですバイトが符号付きであるか符号なしであるかは同じです。 read()を使用してバイトを読み取ることは、符号なしバイトを返すので問題ではありません。バイト配列を読み込んでいるときだけ、注意しなければならないのは、使用するときに各バイトを0xFFでマスクすることを覚えておく必要があるからです。

+0

これは、エンディアンの異なるシステムから来たデータを処理している(または行っている)場合を除き、通常は機能します –

2

Javaには符号なしの型はありません。 CやC++のような言語では、unsigned charに使用できるすべての値を格納できるので、短くすることをお勧めします。

this questionが面白いかもしれません。

関連する問題