Кто-нибудь знает какие-либо платформы, поддерживаемые стандартом C, для которых все еще существуют активные разработки, но которые:
- не 2 дополнения или
- Целочисленная ширина не 32 бита или 64 бита, либо
- некоторые целочисленные типы имеют биты заполнения или
- если вы работали на машине с двумя дополнительными устройствами, битовая диаграмма со знаком бит 1, и все биты значений ноль не являются допустимым отрицательным числом или
- целочисленное преобразование из подписанного в unsigned (и наоборот) не осуществляется через стенографию копирование битовых шаблонов или
- правое смещение целого не является арифметическим сдвигом или
- количество битов значения в неподписанном типе не является числом битов значения в соответствующем подписанном типе + 1 или
- преобразование из более широкого типа int в меньший тип не выполняется усечение левых самых битов, которые не подходят
EDIT: В качестве альтернативы, если в период с 1995 по 1998 год существуют платформы, которые повлияли на решение C99 включить вышеупомянутое, но которые были прекращены, я также был бы заинтересован в них.
РЕДАКТИРОВАТЬ: Обоснование C имеет это, чтобы сказать о битах заполнения:
Биты заполнения являются доступными для пользователя в неподписанном целочисленном типе. Например, предположим, что машина использует пару 16-битных шорт (каждый со своим собственным битом знака), чтобы составить 32-битный int, а бит знака младшего короткого замыкания игнорируется при использовании в этом 32-битном int. Затем, как 32-битный подписанный int, есть бит заполнения (в середине 32 бит), который игнорируется при определении значения 32-разрядного подписанного int. Но если этот 32-битный элемент рассматривается как 32-разрядный беззнаковый int, то этот бит заполнения отображается для программы пользователя. Комитету С было сказано, что есть машина, которая работает таким образом, и это одна из причин того, что биты дополнений были добавлены на C99.
В сносках 44 и 45 упоминаются, что биты четности могут быть битами заполнения. Комитет не знать любые машины с доступными пользователем битами четности в пределах целого числа. Следовательно комитет не знает о каких-либо машинах, которые обрабатывают биты четности как биты заполнения.
Итак, еще один вопрос: что это за машина, о которой упоминал C99?
EDIT: Кажется, что C99 рассматривал возможность удаления поддержки для 1 дополнения и знаковой величины: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n868.htm http://www.open-std.org/jtc1/sc22/wg14/www/docs/n873.htm (поиск 6.2.6.2)