Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Арифметические операции




Логические операции

К логическим операциям относятся:

· отрицание (NOT) ! (обозначается восклицательным знаком);

· конъюнкция (AND) &(амперсанд);

· дизъюнкция (OR) | (вертикальная черта);

· исключающее ИЛИ (XOR) ^ (каре).

Они выполняются над логическими данными, их результатом будет тоже логическое значение true или false. Законы этих операций показаны в табл. 1.1.

Таблица 1.1 Логические операции

b1 b2 !b1 b1&b2 b1|b2 b1^b2
true true false true true false
true false false false true true
false true true false true true
false false true false false false

Словами эти правила можно выразить так:

· отрицание меняет значение истинности;

· конъюнкция истинна, только если оба операнда истинны;

· дизъюнкция ложна, только если оба операнда ложны;

· исключающее ИЛИ истинно для различных операндов.

Кроме перечисленных четырех логических операций есть еще две логические операции сокращенного вычисления:

· сокращенная конъюнкция (conditional-AND) &&;

· сокращенная дизъюнкция (conditional-OR) ||.

Удвоенные знаки амперсанда и вертикальной черты следует записывать без пробелов.

Правый операнд сокращенных операций вычисляется только в том случае, если от него зависит результат операции, т. е. если левый операнд конъюнкции имеет значение true или левый операнд дизъюнкции имеет значение false.

Можно записывать выражения, не опасаясь деления на нуль:

(n != 0) && (m/n > 0.001) или (n == 0) || (m/n > 0.001)

Примеры определения переменных целых типов:

byte b1 = 50, b2 = -99, bЗ;

short det = 0, ind = 1;

int i = -100, j = 100, k = 9999;

long big = 50, veryBig = 2147483648L;

char c1 = 'A', c2 = '?', newLine = '\n';

Операции над целыми типами

Все целочисленные операции, можно разделить на группы.

Арифметические операции

К арифметическим операциям относятся:

· сложение + (плюс);

· вычитание - (дефис);

· умножение *(звездочка);

· деление /(наклонная черта — слэш);

· взятие остатка от деления (деление по модулю) % (процент);

· инкремент (увеличение на единицу) ++;

· декремент (уменьшение на единицу) --.

Между сдвоенными плюсами и минусами нельзя оставлять пробелы. Сложение, вычитание и умножение целых значений выполняются как обычно, а вот деление целых значений в результате дает опять целое (так называемое "целое деление"), например, 5/2 даст в результате 2, а не 2.5 , а 5/(-3) даст -1. Дробная часть числа попросту отбрасы­вается, происходит усечение частного, т.к. в Java принято целочисленное деление. Это странное для математики правило естественно для программирования: если оба операнда имеют один и тот же тип, то и результат имеет тот же тип. Достаточно написать 5/2.0 или 5.0/2 или 5.0/2.0 и получим 2.5 как результат деления вещественных чисел.

Операция деление по модулю определяется так:

а % b = а - (а / b) * b

Например, 5%2 даст в результате 1 , а 5% (-3) даст, 2 , т.к.

5 = (-3)*(-1) + 2 , но (-5)%3 даст -2 , поскольку -5 = 3 * (-1) - 2.

Операции инкремент и декремент означают увеличение или уменьшение значения переменной на единицу и применяются только к переменным, но не к константам или выражениям, нельзя написать 5++ или (а + b)++ . Например, после приведенных выше описаний i++ даст -99 , a j -- даст 99. Операции можно записать и перед переменной: ++i , — j. Разница проявится только в выражениях: при первой формe записи (постфиксной) в выражении участвует старое значение переменной и только потом происходит увеличение или уменьшение ее значения. При второй форме записи (префиксной) сначала изменится переменная, и ее новое значение будет участвовать в выражении.

 

Результат арифметической операции имеет тип int, кроме того случая, когда один из операндов типа long . В этом случае результат будет типа long.

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

Преобразования

Расширяется в Из Сужается в
short, int, long, float, double byte char
int, long, float, double short byte, char
int, long, float, double char byte, short
long, float, double int byte, short, char
float, double long byte, short, char, int
double float byte, short, char, int, long
- double byte, short, char, int, long, float

Поделиться:

Дата добавления: 2015-09-15; просмотров: 156; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты