为什么typeof十六进制或二进制数Uint64而十进制数的类型是Int64?

ane*_*eal 6 julia

julia> typeof(-0b111)
Uint64

julia> typeof(-0x7)
Uint64

julia> typeof(-7)
Int64
Run Code Online (Sandbox Code Playgroud)

我发现这个结果有点令人惊讶.为什么数字的数字基数确定了签名或未签名?

ane*_*eal 5

看起来这是预期的行为:

此行为基于以下观察:当使用无符号十六进制文字作为整数值时,通常使用它们来表示固定的数字字节序列,而不仅仅是整数值.

http://docs.julialang.org/en/latest/manual/integers-and-floating-point-numbers/#integers

......似乎有点奇怪的选择.