我对Matlab中的hex2dec函数有一个奇怪的问题。
我意识到在16字节的数据中,它省略了2个LSB字节。

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。

最佳答案

您需要使用uint64来存储该值:

A='123123123123123A';
B=bitshift(uint64(hex2dec(A(1:end-8))),32)+uint64(hex2dec(A(end-7:end)))

又回来了
B =

  1310867527582290490

09-26 06:22