2012-12-24 21 views
0

在VC++ 9嘗試這樣的東西:爲什麼Visual C++在給出二進制表示法中的數字時會給出意想不到的值?

int base = 0010; 

然後在調試器中我看到,它等於8十進制。我不明白。

我認爲,如果我在數字之前明確使用000,VC++會將其解釋爲二進制格式的數字。

0010在二進制中是2位十進制數(從正值到左邊讀取數字小數)。

0 - > 0

0 - > 1

10 - > 2

那麼,爲什麼經過這樣定義VC++表明我0010是十進制8?

如果十進制中的8等於bin中的1000?

回答

1

0010是一個八進制文字(因爲它以0開頭)。它的十進制數是十進制數,小數點後8位

+0

啊!非常感謝你。我試過用0b作爲bin-value的格式,但是編譯器返回了一個錯誤。 VC++是否支持bin格式?謝謝 – Secret

+0

用VC++ 9沒有。使用支持用戶定義的文字(C++ 11功能)的編譯器是。 –

相關問題