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

single (-2) to uint32

5 Comments

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.

Sign in to comment.

 Accepted Answer

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!

More Answers (0)

Asked:

on 20 May 2023

Answered:

on 23 May 2023

Community Treasure Hunt

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

Start Hunting!