4

Matlab の hex2dec 関数に奇妙な問題があります。16 バイトのデータで、LSB の 2 バイトが省略されていることに気付きました。

hex2dec('123123123123123A');
dec2hex(ans)
Warning: At least one of the input numbers is larger than the largest integer-valued floating-point
number (2^52). Results may be unpredictable. 
ans =
1231231231231200

これを Simulink で使用しています。したがって、16バイトのデータを処理できません。Simulink はこれを 14 バイト + '00' として解釈します。

4

2 に答える 2

0

を使用した MATLAB の別の方法typecast:

>> A = '123123123123123A';
>> B = typecast(uint32(hex2dec([A(9:end);A(1:8)])), 'uint64')
B =
  1310867527582290490

そして反対方向の逆:

>> AA = dec2hex(typecast(B,'uint32'));
>> AA = [AA(2,:) AA(1,:)]
AA =
123123123123123A

アイデアは、64 整数を 2 つの 32 ビット整数として扱うことです。

とはいえ、他の人がすでに指摘しているように、Simulinkはand型をサポートしていません。 int64uint64

于 2013-08-30T02:54:11.903 に答える