2011-04-16 62 views

回答

1

我覺得沒有,因爲較大的類型可以容納較小類型的所有位信息。唯一的問題可能是簽名/未簽名的東西(如混合簽名與無符號時總是這樣)。但是,你可以隨時獲得原始價值。沒有信息的損失。

signed short s = -1; 
unsigned int i = s; 
signed short originalValue = (signed short)i; 

cout << s << endl; 
cout << i << endl; 
cout << originalValue << endl; 

輸出:

-1 
4294967295 
-1 

在線演示:http://ideone.com/z3G9x

+0

從技術上講,如果值超出範圍,則轉換回帶符號的是實現定義的。 – 2011-04-16 09:52:00

+0

@Oli:真的嗎?你能給我參考嗎? – Nawaz 2011-04-16 09:53:18

+0

@Oli:較小類型的超出範圍?如果是這樣,那麼它不適用於我沒有回答的情況,對吧? – Nawaz 2011-04-16 09:54:17

1

據我所知,目前還指派較小的整數類型larget整型沒有問題。

問題是相反的。

相關問題