Думайте об этом так;y - x
эквивалентно -x + y
.По этой причине мы можем сначала отрицать x
, то есть 15
(1111
в двоичном виде), которое становится 0001
после отрицания.Затем мы можем добавить это значение к y
(то есть 10
, 1010
в двоичном виде), что приведет к 1011
.Поскольку это значение является отрицательным, мы затем переворачиваем биты и добавляем 1, чтобы сделать его положительным, и получаем 0101
, что составляет 5
в base-10.Это означает, что наш результат был -5
, что является правильным.
Я думаю, что вы были правы везде, кроме случаев, когда вы заявили, что он переводится как 11
.