Целые литералы также можно выразить посредством шестнадцатеричных или восьмеричных чисел. Литерал, который начинается с 0x или 0X, считается шестнадцатеричным числом, использующим буквы от A до F (или от a до f) в качестве дополнительных символов, необходимых для записи чисел с основанием 16. Целые литералы, которые начинаются с ведущего символа 0, считаются восьмеричными числами (с основанием 8) и не могут содержать цифры 8 или 9. Java не позволяет выражать целые литералы в двоичной системе счисления (с основанием 2). Разрешенными шестнадцатеричными и восьмеричными литералами являются:
0xff // Десятичное 255, выраженное шестнадцатеричным
0377 // То же число, выраженное восьмеричным (с основанием 8)
OxCAFEBABE // Магическое число для идентификации файлов классов Java
Целые литералы являются 32-битными значениями типа int. Если в конце целого литерала добавить символ L (или l), то такой литерал будет обозначать 64-битное значение типа long.
1234 // Целое значение
1234L // Длинное значение
OxffL // Другое длинное значение
Целочисленная арифметика в Java является модульной. При выходе за диапазон данного целого типа никогда не генерируется ошибка вроде переполнения. В качестве результата формируется остаток по модулю, равному 2 в степени, соответствующей типу выражения. Например:
byte b1 = 127, b2 = 1; // Максимальное значение байта 127
byte sum = (byte)(b1 + b2); // Сумма будет иметь значение -128.
Ни компилятор, ни интерпретатор Java никак не предупреждают о событиях переполнения. Поэтому при использовании целочисленной арифметики важно точно знать, что диапазон используемого типа удовлетворяет поставленным целям. Целочисленное деление на ноль и взятие по модулю ноль запрещено и влечет за собой генерирование исключения ArithmeticException.
Для каждого целого типа существует соответствующий класс-обертка: Byte, Short, Integer и Long. Каждый из перечисленных классов определяет константы MINVALUE и MAXVALUE, которые описывают диапазон типа. Классы также определяют такие полезные статические методы, как Byte.parseByte() и Integer.parseInt(), служащие для преобразования строк в целые значения.
Типы с плавающей точкой
Вещественные числа в Java представлены типами данных float и double. Тип float является 32-битным значением с плавающей точкой, с обычной точностью, а double представляет 64-битное значение с плавающей точкой, с двойной точностью. Оба типа соответствуют стандарту IEEE 754-1985, который определяет формат чисел и арифметические операции, применимые к этим числам.
Значения с плавающей точкой можно непосредственно включать в Java-программу. В такой величине за необязательной последовательностью цифр следует десятичная точка и другая последовательность цифр. Вот представлены несколько примеров:
123.45 0.0 .01
Литералы с плавающей точкой можно также представить в экспоненциальной, или научной, нотации, в которой за числом следует буква e или E (показатель степени) и другое число. Второе число представляет собой степень десятки, на которую умножается первое число. Например:
1.2345E02 // 1.2345 х 102, или 123.45
1e-6 // 0.000001
6.02e23 // Число Авогадро: 6.02 х 1023
Литералы с плавающей точкой по умолчанию являются значениями типа double. При необходимости включения значения типа float за числом следует записать символ f или F:
double d = 6.02E23;
float f = 6.02e23f;
Большинство вещественных чисел, по самой их природе, нельзя точно представить каким-либо конечным количеством битов. Таким образом, значения float и double являются только приближенными значениями представляемых ими чисел. Значение типа float - это 32-битное приближение, которое дает как минимум 6 значимых десятичных разрядов, а Значение типа double – это 64-битное приближение, которое обеспечивает по крайней мере 15 значимых десятичных разрядов.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.