MATLAB: Horzcat of 256 and uint8(5)

horzcattype casting

Why the following code [ 256 uint8(5) ] returns :
ans =
1×2 uint8 row vector
255 5
Why is 256 being casted to uint8, instead of 5 being casted to uint32 or float? Is that really the correct behaviour here? My version is Matlab R2018a.
Related Question