程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 關於C++中0是十進制還是八進制的問題

關於C++中0是十進制還是八進制的問題

編輯:C語言基礎知識

雖然在任何進制數種, 0 只有一個值——那就是「零」,之所以問這個問題,純粹是閒著蛋疼。

最近和朋友們討論關於數的話題,他說,八進制數現在幾乎從未使用過。 我一時無法反駁,確實,除了我們經常使用的十進制,在計算機中用的最多的就是二進制和十六進制了,八進制數確實很“小眾”。

等我回到家仔細一琢磨,八進制,八進制,「八進制就是以 0 開頭的數字」,咦,那 0 算嗎?0 也是以 0 開頭的數字啊!如果 0 是八進制的話,那麼我們幾乎每天都在使用八進制數。 計算機中確實有很多東西值得深究,比如簡單類型其實一點都不簡單,更多蛋疼的計算機問題可以去我的《代碼之謎》系列去看看。

那麼 0 是八進制數嗎?C++ 規范如何定義的?

是的,在 C++ 中,0 是 八進制 的。

根據 C++ 標准:

2.14.2 整數 [lex.icon]

integer-literal: 
    decimal-literal integer-suffixopt 
    octal-literal integer-suffixopt 
    hexadecimal-literal integer-suffixopt 
decimal-literal: 
    nonzero-digit 
    decimal-literal digit 
octal-literal: 
    0                    <--------------------<這裡>
    octal-literal octal-digit

以後我們設置可以自豪的說,“在計算機中,八進制比二進制,甚至十六進制更普遍”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved