若要簽署的不帶正負號的轉換
不帶正負號的整數類資料型別的物件可以轉換成對應的帶正負號型別。 不過,這種轉換可能會造成錯誤解譯的資料,如果不帶正負號的物件的值超出了範圍表示帶正負號的型別,如下列範例所示:
範例
// conve__pluslang_Converting_Unsigned_to_Signed.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
short i;
unsigned short u = 65533;
cout << (i = u) << "\n";
}
Output
-3
在上述範例中, u是unsigned短整數類資料的物件,必須先轉換成的帶正負號的數量,來評估運算式(i = u)。 因為無法正確地顯示它的值,在signed short,被錯譯資料,如所示。