2016-09-28 7 views
0

私は私が読んだことを持っていると私は私のチェックコードは確かに単なるバイト値であることを知っているが、私はffffff9eなどを取得する傾向がある変換するときしかし、私は9e必要があります。どのように私はそれを変換することができます純粋に2桁と0のパディングを1桁の場合は?ffffを無視し、1バイトのパディングを0にするにはどうしたらいいですか?

   byte checkCode = r.readByte();    // check code 
     System.out.println("checkCode is 0x: " + Integer.toHexString(checkCode)); 

答えて

1

事実はあなたがint型の数値に0x9eを変換する場合、それは-98になります、あり、そしてffffffminus symbole -を示しています。 Integerを使用しているため、Longを試して、fを取得しているため、6 fがあります。

たとえば、1e(int値が30)のような別のテストデータがある場合、結果は期待どおりになります。

あなただけf、最も簡単な方法削除する場合:あなたはIntegerを使用しているため

System.out.println("checkCode is 0x: " + Integer.toHexString(checkCode).substring(6, 8)); 

をので、あなたは常に6〜8

+0

にストリングがそれは常に8桁右になりたいです? – user5313398

+0

Integer.toHexString、常に8を使用している場合は、Long.toHexStringを試してください。 –

+0

それでは、Integetを16進法に使うのが一番ですか? – user5313398

関連する問題