- Если один из операндов целочисленный, а другой вещественный, сначала идёт преобразование целочисленного операнда к такому же вещественному типу, а потом выполняется оператор.
- В Java каждому примитивному типу сопоставляется объектный тип, то есть класс. Такие классы называются оболочечными (class wrappers). В общем случае они имеют те же имена, что и примитивные типы, но начинающиеся не со строчной, а с заглавной буквы. Исключение составляют типы int и char, для которых имена оболочечных классов Integer и Character.
- Основное назначение оболочечных классов – создание объектов, являющихся оболочками над значениями примитивных типов. Процесс создание такого объекта (“коробки” - box) из значения примитивного типа называется упаковкой (boxing), а обратное преобразование из объекта в величину примитивного типа – распаковкой (unboxing). Упаковка и распаковка для числовых классов осуществляется автоматически.
- В оболочечных классах имеется ряд полезных методов и констант. Например, минимальное по модулю не равное нулю и максимальное значение числового типа можно получить с помощью констант, вызываемых через имя оболочечного типа: Integer.MIN_VALUE, Integer.MAX_VALUE, Float.MIN_VALUE , Float.MAX_VALUE, Double.MIN_VALUE , Double.MAX_VALUE. и т.п.
- В Java имеется 15 уровней приоритета операторов. В хорошо написанной программе ставятся скобки, повышающие читаемость программы, даже если они не нужны с точки зрения таблицы приоритетов.
- Иногда требуется использовать элементы, которые не являются ни числами, ни строками, но ведут себя как имена элементов и одновременно обладают порядковыми номерами. Например, названия месяцев или дней недели. В этих случаях используют перечисления.
Типичные ошибки:
Работа с выбором вариантов осуществляется следующим образом:
if(jRadioButton1.isSelected() )
оператор1;
if(jRadioButton2.isSelected())
оператор2;
if(jRadioButton3.isSelected())
оператор3;
Глава 4. Работа с числами в языке Java
Данная часть посвящена изучению работы с числами на более глубоком уровне. В ней рассматривается машинное представление целых и вещественных чисел, эффективное для аппаратной реализации, а также объясняются особенности и проблемы, к которым приводит такое представление.
4.1 Двоичное представление целых чисел
Позиционная система счисления - это такой способ записи числа, при котором вес цифры зависит от занимаемой позиции и пропорционален степени некоторого числа. Основание степени называется основанием системы счисления.
Например, число 2006 в десятичной системе счисления представляется в виде суммы тысяч, сотен, десятков и единиц:
2006 = 2*103 + 0*102 + 0*101 + 6*100 ,
то есть слагаемых с различными степенями числа 10. По основанию степени - числу десять - система называется десятичной. Другие позиционные системы счисления отличаются только числом в основании степени.
При написании программ чаще всего используют десятичную, шестнадцатеричную (основание шестнадцать), восьмеричную (основание восемь) и двоичную (основание два) системы. Число различных знаков - цифр, используемых для записи чисел - в каждой системе равно основанию данной системы счисления.
0,1 - цифры двоичной системы
0,1,2,3,4,5,6,7 - цифры восьмеричной системы
0,1,2,3,4,5,6,7,8,9 - цифры десятичной системы
0,1,2,3,4,5,6,7,8,9,A,B,B,C,D,E,F - цифры шестнадцатеричной системы
В шестнадцатеричной системе "обычных" десятичных цифр недостаточно, и для обозначения цифр, больших девяти, используются заглавные латинские буквы A,B,C,D,E,F.
В дальнейшем везде, где это необходимо, мы будем указывать основание системы счисления индексом рядом с числом: 9510 - в десятичной системе, 27F16 - в шестнадцатеричной системе, 67528 - в восьмеричной системе, 10001112 - в двоичной системе.
Существует множество непозиционных систем счисления, в которых числа изображаются и называются по своим правилам. Для римской системы чисел характерны сопоставление отдельного знака каждому большому числу ( V - пять, X - десять, L - пятьдесят, C - сто, M - тысяча ), повторение знака столько раз, сколько таких чисел во всем числе ( III - три, XX - двадцать), отдельные правила для предшествующих и последующих чисел (IV - четыре, VI - шесть, IX - девять). Множество непозиционных систем счисления связано с традиционными способами измерения конкретных величин - времени ( секунда, минута, час, сутки, неделя, месяц, год), длины ( дюйм, фут, ярд, миля, аршин, сажень), массы ( унция, фунт), денежных единиц. Выполнение арифметических действий в таких системах представляет собой крайне сложную задачу.
Приведём пример самой простой из возможных систем счисления – унарную. В ней имеется всего одна цифра 1. В унарной системе счисления число 1 изображается как 1, число 2 изображается как 11, число 3 как 111, число 4 как 1111, и так далее. Первоначально вместо единицы использовались палочки (помните детский сад?), поэтому такая система счисления иногда называется палочковой. Как ни странно, она является позиционной.
Позиционные системы счисления с основанием 2 и более удобны для алгоритмизации математических операций с числами (вспомните способ сложения и умножения "столбиком"). Двоичная система является естественным способом кодирования информации в компьютере, когда сообщение представляется набором нулей ("0" - нет сигнала на линии) и единиц ("1" - есть сигнал на линии). Для обозначения двоичных цифр применяется термин "бит", являющийся сокращением английского словосочетания "двоичная цифра" (BInary digiT).
Архитектура компьютера накладывает существенное ограничение на длину информации, обрабатываемой за одну операцию. Эта длина измеряется количеством двоичных разрядов и называется разрядностью. С помощью восьми двоичных разрядов можно представить 28=256 целых чисел. Порция информации размером 8 бит (8-ми битовое число) служит основной единицей измерения компьютерной информации и называется байтом (byte). Как правило, передача информацией внутри компьютера и между компьютерами идет порциями, кратными целому числу байт.