2011-11-15 22 views
0

バイト配列の最後のバイトの下位4ビットを選択しようとしています。これは私がこれまでPHPで行ってきた方法ですが、私はJavaを初めて使用しています。Javaバイト配列の操作

$lower4bit = substr($bytes[19], -1); 

//Convert the hex to decimal to get the offset value 
$offset = hexdec($lower4bit); 

//Select the value of the 4 bytes starting at the offset 
$joinedArray = implode(array_slice($bytes, $offset, 4)); 

誰でも正しい方向をJavaで教えていただけますか?

+0

私は完全な答えを得る時間がありませんが、PHPで '配列'は配列、リスト、マップ、およびその他すべての種類のものです。 Javaでは、すべてが1つに組み込まれているわけではありません。 – corsiKa

+0

これはPHPでもそれを行うのは間違った方法です。 '$ lower4bit = $ bytes [19] & 0x0F;' – Esailija

答えて

3

あなたはそうのようなアレイにアクセス:あなたはそうのような配列の長さを見つける

y = a[i]; 

を:

len = a.length; 

あなたはそうのような整数の最後の4ビットを分離することができる:

y = x & 0xF; 

これらは、必要なコードを構築するのに十分なはずです。

+0

ありがとうございました。私は最初の2つ、それは素晴らしいです。私は今最後のバイトを持っています。しかし、どのように第3のビットが動作するかわからない。 0xFは何をしますか? – Joseph

+1

@Joseph:最後のステートメントは[bitmask](http://en.wikipedia.org/wiki/Bitmask)を適用しています。 '0xF'は4LSBが設定された16進定数です。 –