我一直想知道爲什麼前導零(0
)用於表示八進制數,而不是—,例如— 0o
。使用0o
將同樣有用,但不會引起與導致0
es(例如,在JavaScript中的parseInt('08');
)一樣多的問題。這種設計選擇背後的原因是什麼?爲什麼前導零用來表示八進制數?
10
A
回答
17
所有現代語言都從C中導入這個約定,C從B導入,B從BCPL導入。
除BCPL使用十六進制的#1234
和十六進制的#x1234
。 B已經脫離了這個約定,因爲#是B中的一元運算符(整數到浮點數轉換),所以#1234不能使用,#作爲基本指針被替換爲0.
B的設計者試過使語法非常緊湊。我想這是他們沒有使用雙字符前綴的原因。
1
「0b」通常用於二進制而不是八進制。領先的「0」是,我懷疑是「O-直腸」。
如果您知道您將要解析八進制數,請使用parseInt('08', 10);
使其將數字視爲十位數。
相關問題
- 1. Javascript,爲什麼被視爲八進制
- 2. 字符串評估()但忽略前導零(八進制)
- 3. 什麼是非法八進制數字?
- 4. 表示八進制中的數字
- 5. 爲什麼「%.3i」打印前導零?
- 6. 爲什麼前導零的變化值
- 7. 爲什麼uint32_t的結果會自動變爲八進制數?
- 8. 代表八進制數爲海峽
- 9. 十進制數字之前爲零
- 10. 八進制文字的點是什麼
- 11. 從分數轉換爲十進制表示在八度
- 12. 帶前導零(09)的數值打印爲「0」...爲什麼?
- 13. 將一個數字的八進制表示轉換爲十進制
- 14. Documentdb .net十進制前導零
- 15. Swift中的前導二進制零字
- 16. 16位二進制前導零
- 17. 爲什麼要在JSON中使用字符串來表示十進制數
- 18. C++中整數的十進制,八進制和十六進制表示法
- 19. 刪除浮點數前十進制的前導零
- 20. Oracle - 爲什麼數字的前導零消失
- 21. 將八進制數轉換爲十進制和十六進制
- 22. 將八進制轉換爲二進制
- 23. 爲什麼十進制數16 == 5的二進制表示中的位數?
- 24. 有關HyperLogLog的前導零是什麼?
- 25. 爲什麼Java八進制轉義只能達到255?
- 26. 爲什麼java.util.Scanner不能將0700看作八進制文字?
- 27. 將整數格式化爲八進制
- 28. C++將八進制小數轉換爲十進制小數?
- 29. 如何將二進制數字轉換爲八進制數字?
- 30. 在Lex中將八進制數轉換爲十進制數
是的,我知道。我只是想知道爲什麼它被使用,因爲這對於新手來說有點混亂。用'0b'我犯了一個錯誤,固定爲'0o'。 – Hauleth 2012-07-14 11:18:22
「八」中的「零」?幾乎不。我的猜測是,它只是當時流行的數字格式,就像現在的十六進制格式一樣。 – tripleee 2012-07-14 12:10:06
@triplee:你認識到0看起來像一個O,對吧?這並不是人們並沒有用y34rs的數字取代13773rs。 – 2017-11-01 20:50:52