C / C ++では、ビット単位の演算子はエンディアンに依存せず、期待どおりに動作するはずだと私は理解しています。マシンのエンディアンを気にせずに、64ビット値から本当に最も重要な単語と最も重要でない単語を取得していることを確認したいと思います。次に例を示します。
uint64_t temp;
uint32_t msw, lsw;
msw = (temp & 0xFFFFFFFF00000000) >> 32;
lsw = temp & 0x00000000FFFFFFFF;
これは機能しますか?