Как стать автором
Обновить

Комментарии 10

У вас опечатка про byte. значения от -128 до 128. Должно быть 127.
В идеале хорошо бы ещё написать, почему именно так.
В дополнение к статье, по поводу почему до 127:
Байт состоит из 8 бит.
00000000 означает 0
11111111 означает 255
Однако, если мы просто так говорим, мы не можем различать, является ли число положительным или отрицательным. По этой причине бит с левой стороны дает нам эту информацию. Если бит на левой стороне равен 0, вы можете начать добавлять значение других бит в верхней части нуля. Если бит равен 1, вы должны начать добавлять от -128.
Примеры

В этих примерах бит с левой стороны равен 1, это означает, что мы добавляем значения других бит в верхней части -128.
10000000 = -128 (-128 + 0)
10000001 = -127 (-128 + 1)
10000011 = -125 (-128 + 3)
10000111 = -121 (-128 + 7)
Одинаковые байты, но на этот раз бит слева равен 0. Это означает, что мы начинаем добавлять в начало 0.

00000000 = 0 (0 + 0)
00000001 = 1 (0 + 1)
00000011 = 3 (0 + 3)
00000111 = 7 (0 + 7)
Если мы до сих пор в порядке, наименьшее возможное число с 8 битами с этим правилом:
10000000 = -128
наибольшее возможное количество
011111111 = 127
Вот почему диапазон находится между -128 и 127.
Спасибо за подробное объяснение!
А еще бывают языки с динамической типизацией данных (например Java Script). Но мы здесь учим нормальный язык программирования, поэтому не будем отвлекаться.

Гениальная фраза. В меморис. Не, я не шучу, я серьезно.
Тип char
16-разрядный тип данных в диапазоне от 0 до 2^16. Хранит значения от 0 до 65536. Этот тип может хранить в себе полный набор международных символов на всех известных языках мира (кодировка Unicode).

А как же UTF-32?
И нафига под boolean аж 32 бита? Там же 1 хватит. Ну для ровного счета до байта округлить.
/сарказм on/ А я все понял.
0 — True (истина в последней инстанции);
1...255 — Ну… почти правда;
256 — 2^16 -ближе к истине, чем к ложи;
2^16 — 2^24 — Пиздит, но как талантливо.
2^24 — 2^32 — Точно врет;
2^32+1 — Гений, врет так, что от правды не отличишь.
/сарказм off/
public class FloatAndDoubleTest {
    public static void main(String... args) {
        System.out.println(.1d + .2d);
        System.out.println(.1F + .2F);
    }
}


C:\master\jdk15\bin\java.exe
0.30000000000000004
0.3

Process finished with exit code 0

Спасибо за статью. Не понимаю, почему ее заминусили! База очень важна, основы очень важны. Куда ни сунься — всюду информация на уровне продвинутого, предполагающая, что база известна, азы вкуривай сам. Сохранила в закладки.

оскорбленных сообществом

а boolean-то не так и прост…
16-разрядный тип данных в диапазоне от 0 до 2^16. Хранит значения от 0 до 65536.

Тип данных в диапазоне от 0 до 2^16-1. Хранит значения от 0 до 65535.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории