Стандартный целочисленный тип может отличаться в разных компьютерных архитектурах по нескольким причинам:
- Разрядность машинного слова процессора. 2 Как правило, для большинства задач используется целочисленный тип с разрядностью, равной разрядности машинного слова процессора, на котором исполняется программа. 2
- Представление знака. 23 Для разных архитектур оно может различаться. 23 Например, наиболее распространён дополнительный код, при котором отрицательное число представлено вычитанием из 0 с переполнением, а если старший бит старшего байта включён — число считается отрицательным. 23
- Размер байта. 4 На большинстве архитектур размер байта равен 8 бит, но бывают и исключения. 4 Например, процессоры с 36-битной архитектурой как правило имеют 9-битный байт, а в некоторых DSP от Texas Instruments байты состоят из 16 или 32 бит. 4
- Поддержка беззнаковых типов. 1 Практически все компьютерные архитектуры в дополнение к знаковым целым числам поддерживают и беззнаковые типы, то есть целочисленные типы, содержащие только неотрицательные значения. 1
Из-за этих различий при переносе программы с одной платформы на другую могут возникнуть проблемы, особенно если используются беззнаковые типы, поскольку арифметика беззнаковых чисел не на всех компьютерах реализована одинаково. 5