saroff
@saroff
Enterprise Java Developer

Почему границы примитивных целых типов в java в — на 1 больше чем в +?

Собственно сабж, например байт может содержать число от -128 до 127, с остальными типами так же. Чем это обусловлено?
  • Вопрос задан
  • 2718 просмотров
Решения вопроса 1
LPzhelud
@LPzhelud
Потому что ноль тоже считается положительным.
А поэтому чисел в положительный диапазон необходимо уместить на единицу больше.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
svd71
@svd71
это обусловлено тем, что есть еще одно унивесальное значение, как знак. На него отводится один бит. самый левый. то есть если этот левый бит оттдельно выделять бинарной операцией AND, то можно сразу сказать, является ли число положительным или отрицательным.
Ответ написан
mrstrictly
@mrstrictly
Поскольку для внутреннего представления типов данных используется двоичная система счисления, мощность множества чисел, которые можно представить целочисленными типами, всегда будет чётной. Договариваемся, что множеством целых чисел мощностью N представляем N/2 положительных и N/2 отрицательных чисел, например. Куда девать ноль? "Забираем" его у отрицательных чисел...
Это если вкратце.
Ответ написан
Комментировать
Комментировать
opium
@opium
Просто люблю качественно работать
Собственно байт это 2 в восьмой степени или же 256 разных значений
в диапазоне -128 +127 как раз их 256
в целом никто не мешает менять этот диапазон к примеру на -125 +130
ну и есть безнаковые диапазоны 0 255 или 1 256
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы