2013-06-25 6 views
1

Я играл с дополнением 2 и нашел более быстрый способ найти значение отрицательного двоичного кода. Пожалуйста, помогите мне доказать это (правильно или неправильно) или почему это работает! Заранее спасибо!Как доказать эту теорию я узнал? Более быстрый способ сделать дополнение 2 (узнав значение отрицательного двоичного кода)

2 дополнением является очень полезным для нахождения значения в двоичном, но я думал о гораздо более кратким способом решения такой проблемы (никогда не видел, чтобы кто-то опубликовать его):

взять бинарник, например, : 1101, который [предполагается, что пространство «1» является знаком], равным -3.

с использованием дополнения 2 мы сделали бы это ... flip 1101 to 0010 ... add 0001 + 0010 ===> дает нам 0011. 0011 в положительном двоичном = 3. поэтому 1101 = -3!

То, что я понял:

вместо все листать и добавление, вы можете просто сделать основной метод решения для положительных бинарного (позволяет сказать 0101) есть (2 * 0) + (2 * 1) + (2 * 0) + (2 * 1) = 5.

сделать то же самое понятие с отрицательным! (с небольшим TWI й)

принять +1101, например:

для первого номера вместо 2 * 1 = , делать - (2 * 1) = -8.

затем продолжить, как обычно, делая -8+ (2 * 1) + (2 * 0) + (2 * 1) = -3

Примечание: это, казалось, работало для каждого теста, который я сделал.

Спасибо, что посмотрели. Кроме того, если вы этого не видели раньше, пожалуйста, дайте мне знать, я никогда не видел этого нигде.

ответ

1

Это решение работает для тестов, которые я сделал! Спасибо за быстрое решение для дополнения 2, я все еще испытаю еще более сложные вопросы.