Как рассчитать дополнение к положительному и отрицательному числу?
Если я использую свое дополнение для представления числа, какой результат я должен получить?
Например, номер 01110 (положительное число), его дополнение должно быть 01110 или 10001?
если число - 10001 (отрицательное число), значение дополнения к одному - 01110?
3 ответа
В вашем случае это было бы 10001. Дополнение к единице означает обращение всех битов числа.
Это также подразумевает, что оно превращает положительное число в отрицательное и наоборот. Также обратите внимание, что это приводит к некоторому странному поведению, например, дополнение нуля не равно нулю, но отрицательный ноль: 00000 становится 11111. Это делает арифметику с дополнением 1 немного хитрой, и это одна из причин того, что компьютеры сегодня используют дополнение 2 для отрицание.
Одно дополнение, два дополнения и знаковая величина одинаковы для положительных чисел. Для отрицательных чисел возьмите двоичное число для абсолютного значения (положительное число) и переверните его, чтобы получить дополнение к одному. Добавьте один к дополнению 1, чтобы получить дополнение 2...... И добавьте 1 дополнительный бит к самому левому краю оригинала, чтобы получить величину знака....
Это совершенно неверно, одно дополнение, два дополнения и знаковая величина одинаковы для положительных чисел. Для отрицательных чисел возьмите двоичное число для абсолютного значения (положительного числа) отрицательного числа и инвертируйте его, чтобы получить дополнение, которое будет отличаться от дополнения до двух и величины со знаком.