How we are getting overflow when single(-2) is stored in uint32?

single (-2) to uint32

5 Commenti

What are you doing?
This is what I get —
v = single(-2)
v = single -2
vu32 = uint32(v)
vu32 = uint32 0
vi32 = int32(v)
vi32 = int32 -2
.
I was getting an integer overflow error in uint32 block,input to this block is a single data type.I was confused on how the overflow is happening there.
The "u" in the uint32 stands for unsigned, which means that this data-type supports only positive integers, along with 0.
If you want to convert a negative floating point integer to an integer data type, use signed integer classes, As @Star Strider has showed above (int8, int16, int32, int64)
@Nithinraj — You need to mention that you are using Simulilnk.
I was getting the above error in uint32 block in simulink.

Accedi per commentare.

 Risposta accettata

Hi,
I understand that you are getting overflow when single(-2) is stored in uint32 block in Simulink.
In Simulink, an overflow error occurs when the value being assigned or stored in a block exceeds the maximum representable value for the specified data type. In your case, you're trying to store the value -2 in a uint32 block, which represents an unsigned 32-bit integer.
The uint32 data type can only store non-negative integers ranging from 0 to 4294967295. Since -2 is a negative value, it cannot be represented by the uint32 data type, resulting in an overflow error.
Thanks!

Più risposte (0)

Richiesto:

il 20 Mag 2023

Risposto:

il 23 Mag 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by