Какой диапазон чисел мы можем представить с помощью N битов? - PullRequest
0 голосов
/ 28 июня 2018

Для целых чисел без знака мы можем представлять числа в диапазоне от

от 0 до 2 N - 1

А для целых чисел со знаком, таких как дополнение к двум, диапазон равен

-2 (N-1) до 2 (N-1) - 1

Как рассчитывается диапазон со знаком?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Для целых чисел без знака:
мы используем все N биты для представления чисел в диапазоне от 0 to 2^N - 1, потому что если мы используем все N битовых позиций и вычисляем различные конфигурации, помещая либо 0, либо 1 в каждую позицию, мы можем получить максимальное целое число 2^N - 1 (что составляет 11...upto N times) и самое низкое целое число, равное 0 (что составляет 00..upto N times). И, следовательно, все значения от 0 до 2^N - 1 могут быть представлены.

Для целых чисел со знаком:
Здесь мы в основном используем N-1 бит для представления целых чисел, а 1 бит зарезервирован исключительно для определения знака этого целого числа. Таким образом, мы можем представлять числа в диапазоне от -2^(N-1) до 2^(N-1) - 1. Наиболее значимый бит как 1 представляет отрицательные целые числа, тогда как старший значащий бит как 0 представляет неотрицательные целые значения. Здесь мы можем представить отрицательное значение от -1 до -2^(N-1) из-за того, что мы можем использовать число со всеми N битами как 1. В основном компиляторы используют представление дополняющее два для представления целых чисел.

0 голосов
/ 09 декабря 2018

Вот сделка. Давайте сделаем это за 2 бита, поэтому N=2.

Мы получаем Range=-2 to 1, то есть оно может представлять -2,-1,0,1.

Теперь, если N=4, у нас есть Range=-8 to +7.

Я не могу понять, где ты застрял.

...