This has been changed on 0.4.

https://github.com/JuliaLang/julia/issues/3759

-Jacob

On Wed, Jun 17, 2015 at 4:33 PM, Phil Tomson <[email protected]> wrote:

> Maybe this is expected, but it was a bit of a surprise to me:
>
>  julia> function foo()
>              red::Uint8 = 0x33
>              blue::Uint8 = 0x36
>              (red-blue)
>           end
> julia> foo()
> 0xfffffffffffffffd
> julia> typeof(foo())
> Uint64
>
> The fact that it overflowed wasn't surprising, but the fact that it got
> converted to a Uint64 is a bit surprising (it ended up being a very large
> number that got used in other calculations later which led to odd results)
> . So it looks like all of the math operators will always promote to the
> largest size (but keep the same signed or unsignedness).
>
> I'm wondering if it might make more sense if:
> Uint8 - Uint8 -> Uint8
> Or more generally: UintN <op> UintN -> UintN ?
> and:                          IntN <op> IntN -> IntN
>
>
>
>
>

Reply via email to