2012-02-16 16 views
1

私は追加する必要のあるリトルエンディアンに2バイトの配列を持っています。 Obvioslyこのコードは動作しません。リトルエンディアンのバイト配列を2つ追加する

for (int i=0;i<bytes1.getB1().length;i++){ 
    bAdded[i]=(byte) (bytes1[i]+bytes2[i]); 
} 

これらの2つのリトルエンディアンバイト配列を追加するにはどうすればよいですか?

答えて

0

"動作しない"とはどういう意味ですか?

あなたはそれがバイトの間運ん実行していないことを意味している場合、ここにあなたがそれを行うことができる方法です:

int carry = 0; 

for (int i = 0; i < bytes1.getB1().length; i++) { 
    int sum = bytes1[i] + bytes2[i] + carry; 
    bAdded[i] = (byte) sum; 
    carry = sum >> 8; 
} 

bAdded[bytes1.getB1().length] = carry; 
+1

私はそうですとは思わない - あなたはcarry' 'に値を割り当てることはありません。おそらく、 'carry = sum >> 8;'でなければなりません。 –

+0

リトルエンディアン形式が原因で動作しないのですが、私のコードでバイト配列はリトルエンディアンのように扱われます。 – Fischer

+0

@ホットリックス:そうです。一定。フィッシャー:「リトルエンディアンのように扱われる」という意味は分かりません。 – MRAB

関連する問題