Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Целочисленные значения. Типы с плавающей точкой. Символы




Целочисленные значения

Java определяет четыре целочисленных типа: byte, short, int и long. Все эти типы представляют значения со знаком – положительные и отрицательные. Java не поддерживает только положительные целочисленные значения без знака. Многие другие языки программирования поддерживают целочисленные значения как со знаком, так и без знака. Однако разработчики Java посчитали целочисленные значения без знака ненужными. В частности, они решили, что концепция значений без знака использовалась, в основном, для указания поведения старшего бита, который определяет знак целочисленного значения. Как будет показано в главе 4, в Java управление значением старшего бита осуществляется иначе – посредством применения специальной операции “сдвига вправо без учета знака”. Тем самым потребность в целочисленном типе без знака была исключена. Ширина целочисленного типа представляет не занимаемый объем памяти, а скорее поведение, определяемое им для переменных и выражений этого типа.

Типы с плавающей точкой

Числа с плавающей точкой, называемые также действительными числами, используются при вычислении выражений, которые требуют получение результата с точностью до определенного десятичного знака. Например, такие вычисления, как вычисление квадратного корня или трансцендентных функций вроде синуса или косинуса, приводят к результату, который требует применения типа с плавающей точкой. В Java реализован стандартный (в соответствии с IEEE-754) набор типов и операций с плавающей точкой.

Существуют два вида типов с плавающей точкой: float и double, которые соответственно представляют числа одинарной и двойной точности.

Приблизительная область допустимых значений

double 64 от 4. 9e-324 до 1. 8e+308

float 32 от 1. 4e-045 до 3. 4e+038

Ниже приведен пример короткой программы, в которой переменные типа double используются для вычисления площади круга.

// Вычисление площади круга.

class Area {

public static void main(String args[]) {

double pi, r, a;

r = 10. 8; // радиус окружности

pi = 3. 1416; // pi, приблизительное значение

a = pi * r * r; // вычисление площади

System. out. println(" Площадь круга составляет " + a);

}

}

Символы

В Java для хранения символов используется тип данных char. Однако программистам на C/C++ следует помнить, что тип char в Java не эквивалентен типу char в C или C++. В C/C++ char – это целочисленный тип, имеющий ширину 8 битов. В Java это не так. Вместо этого в нем для представления символов используется Unicode. Unicode определяет международный набор символов, который может представлять все символы, присутствующие во всех известных языках. Он представляет собой унифицированный набор десятков наборов символов, таких как латиница, греческий алфавит, арабский алфавит, кириллица, иврит, японские и тайские иероглифы и множество других. Поэтому для хранения этих символов требуется 16 битов. Таким образом, в Java тип char является 16-битным. Диапазон допустимых значений этого типа – от 0 до 65536. Не существует отрицательных значений типа char. Стандартный набор символов, известный как ASCII, содержит значения от 0 до 127, а расширенный 8-битный набор символов, ISO-Latin-1 – значения от 0 до 255. Поскольку язык Java предназначен для обеспечения возможности создания программ, применимых во всем мире, использование кодировки Unicode для представления символов вполне обосновано. Конечно, применение Unicode несколько неэффективно для таких языков, как английский, немецкий, испанский или французский, для представления символов которых вполне достаточно 8 битов. Но это та цена, которую приходится платить за переносимость программ во всемирном масштабе.

// Демонстрация использования типа данных char.

class CharDemo {

public static void main(String args[]) {

char ch1, ch2;

ch1 = 88; // код переменной X

ch2 = 'Y';

System. out. print(" ch1 и ch2: " );

System. out. println(ch1 + " " + ch2);

}

}

Эта программа отображает следующий вывод:

ch1 и ch2: X Y

Обратите внимание, что переменной ch1 присвоено значение 88, являющееся значением ASCII (и Unicode), которое соответствует букве X. Как уже было сказано, набор символов ASCII занимает первые 127 значений набора символов Unicode. Поэтому, все “старые трюки”, применяемые при работе с символами в других языках, будут работать и в среде Java.

Хотя тип char был разработан для хранения символов Unicode, его можно считать также целочисленным типом, пригодным для выполнения арифметических операций.

Например, он позволяет выполнять сложение символов или уменьшать значение символьной переменной. Рассмотрим следующую программу:

// Символьные переменные ведут себя подобно целочисленным значениям.

class CharDemo2 {

public static void main(String args[]) {

char ch1;

ch1 = 'X';

System. out. println(" ch1 содержит " + ch1);

ch1++; // увеличение значения ch1 на единицу

System. out. println(" ch1 теперь " + ch1);

}

}

Эта программа генерирует следующий вывод:

ch1 содержит X

ch1 теперь Y

Вначале программа присваивает переменной ch1 значение X. Затем она увеличивает значение переменной ch1 на единицу. В результате хранящееся в переменной значение становится буквой Y – следующим символом в последовательности ASCII (и Unicode).

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...