Преобразование чисел со знаком в числа без знака
Объекты целочисленных типов со знаком можно преобразовывать в соответствующие типы без знака. При выполнении таких преобразований фактический битовый шаблон не изменяется; однако интерпретация данных изменяется. Рассмотрим этот код:
Пример
// conve__pluslang_Converting_Signed_to_Unsigned.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
short i = -3;
unsigned short u;
cout << (u = i) << "\n";
}
Вывод
65533
В приведенном выше примере signed short, i определяется и инициализируется с отрицательным значением. Выражение (u = i) приводит к преобразованию i в тип unsigned short до присваивания значения u.