How do you subtract/add with roll under/over
Show older comments
When you subtract two uint numbers together example:
uint8(1) - uint8(2)
I would like the answer to be 255, instead no matter what the value MATLAB returns 0, likewise if you try adding:
uint8(255) + uint8(1)
MATLAB returns 255.
I have written my own add and subtract functions for this purpose which work fine but I am wondering whether there is actually something in built that I am missing. If there is could you please point me in the right direction.
Thanks.
1 Comment
Matthew Doveton
on 19 Aug 2013
Answers (2)
Azzi Abdelmalek
on 19 Aug 2013
Edited: Azzi Abdelmalek
on 19 Aug 2013
Edit
a=uint8(-1);
out=uint8(255)*uint8(not(a))+a
2 Comments
Matthew Doveton
on 19 Aug 2013
Azzi Abdelmalek
on 19 Aug 2013
Edited: Azzi Abdelmalek
on 19 Aug 2013
Look at edited answer
Sean de Wolski
on 19 Aug 2013
Edited: Sean de Wolski
on 19 Aug 2013
x = uint8(1);
y = uint8(2);
z = max(double(x)-double(y),0)+uint8(x < y).*255
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!