Почему эта величина наибольшего отрицательного числа, представленного в базе -2, в два раза больше, чем наибольшее представленное положительное число?

Здесь упоминается, что "Если слово имеет четное число битов, величина наибольшего отрицательного числа, которое может быть представлено, в два раза больше, чем наибольшее положительное число, которое может быть представлено, и наоборот, если слово имеет нечетное число битов».

Перечитав несколько раз, так и не понял. Не могли бы вы объяснить на каком-нибудь примере? А также для части наоборот.


person sofs1    schedule 03.10.2018    source источник


Ответы (1)


Как сказано в опубликованной вами ссылке, самый правый бит представляет (-2) ^ 0 = +1, следующий бит представляет (-2) ^ 1 = -2, следующий бит (-2) ^ 2 = +4 и и так далее с переменным знаком.

Если биты чередуются по знаку, а первый бит является положительным числом, то каждый четный бит дает отрицательное число. Если этот четный самый левый бит установлен в 0, число будет положительным, однако абсолютное значение будет вдвое меньше, чем предыдущее число.

Например:

0101 = 5, потому что (-2)^0 + (-2)^2 = +1+4

1010 = -10, потому что (-2)^1 + (-2)^3 = -2-8

Однако, если бы мы были ограничены 3 битами, у нас было бы

010 = -2, потому что (-2)^1 = -2

101 = 5, потому что (-2)^0 + (-2)^2 = 1 + 4 = 5

По существу, в системе счисления по основанию 2 наибольшее отрицательное число, которое вы можете получить, — это такое, в котором каждый четный бит установлен в 1, а каждый нечетный бит установлен в 0. А наибольшее положительное число — это такое, где верно обратное.

Если общее количество разрешенных битов четное, то установка самого левого четного бита в 1 приведет к получению отрицательного числа, по крайней мере в два раза превышающего наибольшее положительное число (поскольку любое положительное число оставит самый левый бит равным 0). И наоборот с нечетным числом битов.

person Ali Elgazar    schedule 03.10.2018
comment
@ user3705478 В любое время! Если ответ достаточен, вы можете принять? :D - person Ali Elgazar; 03.10.2018
comment
Не могли бы вы помочь мне понять «Арифметика дополнения до двух, с другой стороны, формирует отрицание x путем вычитания x из одной большой степени двойки, которая конгруэнтна +0» из en.m.wikipedia.org/wiki/Signed_number_representations. - person sofs1; 04.10.2018
comment
@ user3705478 Конечно! Дополнение до двух — это в основном процесс получения отрицательного значения числа через его двоичное значение. Теперь, как вы, возможно, уже знаете, самый левый бит в двоичном представлении со знаком указывает на то, что число отрицательное. Например, 0001 соответствует 1, а 1111 соответствует -1. Способ, которым вы получаете отрицательное число, в основном заключается в том, что вы переворачиваете все биты на противоположное значение, а затем добавляете единицу к результату. Давайте рассмотрим приведенный выше пример. мы переворачиваем биты в 0001 (1 в dec) и становится 1110, затем мы добавляем единицу и становится 1111 (-1 в dec). - person Ali Elgazar; 04.10.2018
comment
Я понял часть, которую вы объяснили. Но я не получаю вычитания x из одной большой степени двойки, которая конгруэнтна +0. Что имеется в виду под этим?? - person sofs1; 04.10.2018