На моем промежуточном этапе возник вопрос:
Учитывая десятичные значения, какое минимальное число битов требуется для представления каждого числа в форме дополнения двух?
Значения были: -26, -1, 10, -15, -4.
Я не совсем правильно понял этот вопрос, и решения весьма сбивают с толку.
Единственная часть, которую я действительно понимаю, это нахождение диапазона, в котором находится значение. Например, -15 будет в диапазоне [-2 ^ 5, 2 ^ 5), а -4 будет в диапазоне [-2 ^ 2, 2 ^ 2). Какие шаги необходимы здесь, чтобы найти, сколько битов было необходимо?
Я пытался найти какой-то шаблон для его решения, но он работал только для первых двух случаев. Вот моя попытка:
Сначала я нашел диапазон. -2 ^ 6 < -26 < 2 ^ 6
Затем я нашел значение для 2 ^ 6 = 32.
Затем я нашел разницу между «ближайшей» границей и значением.
-26 — (-32) = 6
Опять же, это сработало для первых двух значений случайно, и теперь я поставлен в тупик, чтобы найти фактическую связь между количеством битов, необходимых для представления целого числа в форме дополнения к двум, и фактическим целым числом.
Заранее спасибо!
Во-первых, у вас нет 2. 32 = 25.
Во всяком случае, я следовал за вами через первые два шага. Ваш последний шаг не имеет смысла.
Итак, для каждого из чисел, которые вы дали: -26, -1, 10, -15, -4.
Понял?
-1
один хитрый …
Других решений пока нет …