Основное отличие signed и unsigned целочисленных типов данных заключается в диапазоне представляемых значений. 1
Signed может хранить как положительные, так и отрицательные значения. 12 Unsigned — только неотрицательные. 12
Например, 8-битный тип данных unsigned может представлять значения от 0 до 255, а 8-битный тип данных signed — от -128 до 127. 1
Ещё одно отличие — использование памяти. 1 Поскольку unsigned может хранить только неотрицательные значения, ему не нужно выделять бит для представления знака. 1 Это позволяет unsigned представлять более крупные значения, чем signed с таким же количеством бит. 1
Кроме того, для signed типов данных переполнение имеет неопределённое поведение. 4 Для unsigned типов переполнения нет: любая операция, которая приводит к значению вне диапазона типа, обтекается. 4