Преобразования без знака к подписанным
Объекты неподписанных целочисленных типов могут быть преобразованы в соответствующие типы данных со знаком.Однако такое преобразование может привести к превратное интерпретацию данных без знака, если значение объекта вне диапазона репрезентабельного тип данных со знаком, как показано в следующем примере:
Пример
// 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
В предыдущем примере uunsigned Краткое объединенный объект, который необходимо преобразовать в значение числа для вычисления выражения (i = u).Поскольку его значение не может быть правильно представлены в a signed shortданные переведены неправильно, как показано ниже.