Является ли 16-битное целое число со знаком таким же, как 16-битное целое число с дополнением до двух?

Я знаю разницу между целыми числами комплимента один и два, однако я не уверен, является ли 16-битное целое число со знаком таким же, как одно или оба из них.

Надеюсь, простой да/нет вопрос.


person user2884618    schedule 22.03.2016    source источник
comment
дополнение, а не комплимент. они разные   -  person phuclv    schedule 22.03.2016


Ответы (2)


Целое число со знаком означает только то, что тип может хранить отрицательные значения. Он ничего не говорит о представлении типа со знаком, которое может быть дополнением до 1, дополнением до 2 или величиной знака... Даже стандарты C и C++ в настоящее время не заставляют использовать дополнение до 2. Но знаковый тип, очевидно, не может одновременно быть дополнением 1 и 2.

В современных системах используется исключительно дополнение 2 (вероятно, за исключением некоторых сетевых устройств), но существуют более старые системы, использующие другие подписанные представления, например UNISYS 2200. серия

person phuclv    schedule 22.03.2016

Да, сказать, что целое число подписано, это то же самое, что сказать, что оно использует представление с дополнением до двух на вашем стандартном компьютере.

person Darius    schedule 22.03.2016
comment
неправильный! доступны другие подписанные представления - person phuclv; 22.03.2016
comment
Да, есть и другие способы сделать это, но в подавляющем большинстве случаев компьютер будет использовать представление с дополнением до двух. Вот почему я сказал на вашем стандартном компьютере, хотя вы правы в том, что я мог бы сформулировать это немного лучше. - person Darius; 22.03.2016
comment
подавляющее большинство не означает, что подписанное == дополнение 2 - person phuclv; 22.03.2016
comment
Ты прав. Я предположил, что ОП спрашивал, что использует современный компьютер, вместо того, чтобы воспринимать вопрос более буквально. Спасибо за исправление. - person Darius; 22.03.2016