Реклама:

Приведение типов. Если операнды арифметической операции имеют разные типы, то происходит повышение меньшего типа операнда и результат будет иметь высший тип операндов. Если такое действие не устраивает, можно выполнить явное приведение типа. Например, если bl и b2 имеют тип byte, а желателен результат типа short , то можно использовать код: short k = (short)(b1 + b2) ;

Сужение осуществляется просто отбрасыванием старших битов, что необходимо учитывать для больших значений. Например, определение byte b = (byte) 300;

даст переменной b значение 44. Действительно, в двоичном представлении числа 300, равном 100101100, отбрасывается старший бит и получается 00101100.

Таким же образом можно произвести и явное расширение (widening) типа, если в этом есть необходимость.

Результат арифметической операции над целыми типами имеет тип int, кроме того случая, когда один из операндов типа long. В этом случае результат будет типа long. Перед выполнением арифметической операции всегда происходит повышение типов byte, short, char. Они преобразуются в тип int, а может быть, и в тип long, если другой операнд типа long. Если результат целой операции выходит за диапазон своего типа int или long, то автоматически происходит приведение по модулю, равному длине этого диапазона, и вычисления продолжаются, переполнение никак не отмечается.

Укажем некоторые правила преобразования простых типов в строку и наоборот (более подробно правила преобразования представлены в документации JBuilder).

Преобразование простых типов в строку String. Следующие примеры показывают правила преобразования:

• Преобразование из short или int n в String gg:

gg = Integer.toString(n); или gg = String.valueOf(n); Соответственно можно использовать вместо toString следующее toBinaryString, toOctalString, toHexString

Когда используется другая база чисел, например, 7, то используется команда: gg = Integer.toString(b, 7);

• Преобразование из char c, в String gg: gg = String.valueOf(c);

• Преобразование из long n в String gg:

gg = Long.toString(n); или gg = String.valueOf(n); Можно заменить в случае необходимости toString на следующее: toBinaryString, toOctalString, toHexString

Когда используется отличное от 10 или 2 основание системы чисел (типа 7), то:

gg = Integer.toString(n, 7);

• Преобразование из float f в String gg:

gg = Float.toString(f); или gg = String.valueOf(f);

• Преобразование из double d в String gg:

gg = Double.toString(d); или gg = String.valueOf(d); Для сохранения десятичного формата разделения групп разрядов запятой или экспоненциального формата используются следующие приведения (для float -так же). Двойная точность: java.text.DecimalFormat df2

= new java.text.DecimalFormat("###,##0.00"); gg = df2.format(d);

Экспоненциальный формат (JDK 1.2.x и выше): java.text.DecimalFormat de

= new java.text.DecimalFormat("0.000000E00"); gg = de.format(d);

Преобразование строки String в простые типы. Следующие примеры показывают правила преобразования:

• Преобразование из String gg в short s:


⇐ Предыдущая страница| |Следующая страница ⇒