julia> typeof(-0b111)
Uint64
julia> typeof(-0x7)
Uint64
julia> typeof(-7)
Int64
我覺得這個結果有點令人驚訝。爲什麼數字的數字基數決定了簽名或未簽名?爲什麼typeof十六進制數或二進制數Uint64,而十進制數的類型是Int64?
julia> typeof(-0b111)
Uint64
julia> typeof(-0x7)
Uint64
julia> typeof(-7)
Int64
我覺得這個結果有點令人驚訝。爲什麼數字的數字基數決定了簽名或未簽名?爲什麼typeof十六進制數或二進制數Uint64,而十進制數的類型是Int64?
看起來這是預期的行爲:
此行爲是基於這樣的觀察,當一個使用整數值無符號 十六進制文字,人們通常在它們使用於 代表一個固定的字節數字序列,而不僅僅是一個整數 的值。
http://docs.julialang.org/en/latest/manual/integers-and-floating-point-numbers/#integers
...似乎有點像一個奇怪的選擇的。
這是一個主觀的電話,但我認爲它工作得很好。根據我的經驗,當您使用十六進制或二進制時,您對位的特定模式感興趣 - 並且您通常希望它是未簽名的。如果您只是對數字值感興趣,則使用小數,因爲這是我們最熟悉的。另外,當使用十六進制或二進制時,用於輸入的數字數量通常很重要,而在十進制中則不是。所以這就是文字在Julia中的工作方式:十進制給出了一個值的符號整數,而十六進制和二進制給出了一個無符號的值,其存儲大小由數位數決定。
雅必須以某種方式定義它。 – 2014-12-08 03:03:30
Cross發佈在https://groups.google.com/forum/#!topic/julia-users/M5-LZJTyr4E – IainDunning 2014-12-08 04:48:40