Результат 16-разрядного вычитания со знаком или без знака всегда составляет 16 бит (является результатом побитового вычитания) плюс 17-й бит, причем 17-й бит является либо битом переполнения (вычитание со знаком), либо битом переноса (вычитание без знака) , Если у вас есть только 16-битный результат, у вас есть побитовое вычитание, а не 16-битное вычитание со знаком или без знака. Вместо указания знакового, беззнакового или побитового вычитания многие системы выдают все три результата одновременно. Позже вы будете использовать бит переполнения, если вы намеревались вычитать со знаком, бит переноса, если вы хотели вычитать без знака, или ни один из них для побитового вычитания. Обратите внимание, что многие люди не смотрят на 17-й бит, потому что они знают из диапазона входных данных, что им не нужно истинное 16-битное вычитание. Например, если я вычитаю число, которое, как я знаю, находится в диапазоне от 0 до 100, из числа, которое, как я знаю, находится в диапазоне от 1000 до 2000, мне не нужно истинное 16-битное вычитание, поэтому мне не нужно смотреть на 17-й бит , Примечание. Переполнение и перенос получаются по разным правилам и НЕ являются одинаковыми, но различие между ними уже объяснено в другом месте, поэтому я не буду повторять этот ответ здесь.