How do I convert an unsigned integer to a signed integer without causing an overflow or using TYPECAST in Simulink 7.9 (R2012a)?
Mostra commenti meno recenti
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.
Risposta accettata
Più risposte (1)
Kiran Kintali
il 17 Mag 2014
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
Categorie
Scopri di più su Configure and View Diagnostics in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!