How do I convert an unsigned integer to a signed integer without causing an overflow or using TYPECAST in Simulink 7.9 (R2012a)?
显示 更早的评论
When complying to the DO-254 standard you must detect arithmetic overflows as errors in a Simulink model. This means that using a Data Type Conversion block to convert from an unsigned integer to a signed integer is not possible if an unsigned N-bit integer >= 2^(N - 1) is to be converted, as this will cause an overflow.
Further more when generating HDL Code a calls to the function TYPECAST are not supported.
采纳的回答
更多回答(1 个)
Kiran Kintali
2014-5-17
Use reinterpretcast to convert an unsigned number to signed number without causing overflow. The stored integer bits of the number will be reinterpreted.
>> a = fi(7, 0,3,0);
>> a.bin
111
>> b = reinterpretcast(a, numerictype(1,3,0));
>> b.bin
111 % notice no change in stored integer bits
>> a
a =
7
>> b
b =
-1 % notice change in real world value
类别
在 帮助中心 和 File Exchange 中查找有关 Configure and View Diagnostics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!