[問題] int y = 010; cout << y; 為什麼y印出8 ?

看板C_and_CPP作者 (公雞)時間15年前 (2010/08/08 17:41), 編輯推噓3(305)
留言8則, 7人參與, 最新討論串1/1
這是用c++寫的 其實問題很短 但我一直想不出來為什麼會這樣 = = #include <iostream.h> int main(){ int y = 010; cout << y; system ("pause"); return 0; } 想問各位大大 這樣為什麼是印出8 請大家不要笑拉 = = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.13.64

08/08 17:42, , 1F
0 開頭代表使用 8 進位 0x 開頭代表使用16進位
08/08 17:42, 1F

08/08 17:44, , 2F
8 進位的 010 就是 10 進位的 8 沒有錯,你希望的輸出是?
08/08 17:44, 2F

08/08 18:48, , 3F
你希望印出010?
08/08 18:48, 3F

08/08 21:50, , 4F
二進位和八進位的輸出,要自己寫副程式
08/08 21:50, 4F

08/08 22:08, , 5F
樓上.. cout << oct;
08/08 22:08, 5F

08/09 05:07, , 6F
bitset<> 有個吃 string 的建構式可以直接送二進位字串。
08/09 05:07, 6F

08/09 05:08, , 7F
然後對 bitset 做 cout 可以直接印出二進位。
08/09 05:08, 7F

08/10 20:41, , 8F
謝謝各位大大 原來是這樣 ***\( ̄▽ ̄)/***
08/10 20:41, 8F
文章代碼(AID): #1CNdk-Z4 (C_and_CPP)