我对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