2

ビットシフトや xor などの低レベル操作を使用して、uint64 の最初の 32 ビットと最後の 32 ビットを取得し、それらを 2 つの uint32 変数に保存する方法は? 簡単な問題のように思えますが、Matlab ではビット操作にいくつかの制限があります (たとえば、53 ビットまでしかサポートしていません)。

4

2 に答える 2

2

これは、@Ruofeng のコメントに対する @Oleg の正解の補足です。

そうすることで、16進数を正確に格納するのに十分な精度がないものhex2decに変換しています。uint64 に固執すれば問題ありません。doubleaaaaaaaaaaaaaaaa

http://www.mathworks.com/matlabcentral/fileexchange/26005-convert-a-number-in-hex-to-uint64/content/hex2uint64.mを参照してください。

次にx64=hex2uint64('aaaaaaaaaaaaaaaa');、オレグの答えが続きます[つまりx32 = typecast(x64,'uint32');] 2つの部分が同一になります。

x32 =

  2863311530  2863311530
于 2013-06-26T00:53:46.780 に答える