に32ビットのデータを変換します。私はこのような何かを持っている符号なしlong値
int[] r = { 4123, 2571 };
long result = ((r[1] & 0xFFFF) << 16 | (rs[0] & 0xFFFF));
System.out.prinln(result);
は、出力は次のようになります: これは私の試みです
EDIT ... 10111627しかし、私は168497179.は、おそらく私は、変換中に何かを逃したがどのような考えを持っていない取得
これは、値が32ビットレジスタにどのように配置されるかの例です。
10111627は、どのように見ても、4123と2571から構成されていません。 16進数の小さな部分は0x101bと0x0a0bなので、私はそれを0x009a4a8bにすることはできません。どのような成果が得られるべきか、どのように分かっていますか?その部分は、始めるのにも正しいですか? – harold
あなたのコードは正しいです。あなたのテストは間違っています。 – erickson
最新の投稿をご覧ください。値が32ビットレジスタにどのように格納されているかを示す画像があり、その結果がどのように得られるかを示す画像があります。10111627 – Josef