Поделиться через


Преобразования без знака к подписанным

Объекты неподписанных целочисленных типов могут быть преобразованы в соответствующие типы данных со знаком.Однако такое преобразование может привести к превратное интерпретацию данных без знака, если значение объекта вне диапазона репрезентабельного тип данных со знаком, как показано в следующем примере:

Пример

// 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данные переведены неправильно, как показано ниже.

См. также

Ссылки

Объединенные преобразования