Java. Урок 10. Основные операции

Уроки для начинающих   14 января 2013  Автор статьи:  

Мы уже рассматривали некоторые операции языка Java в предыдущих уроках. Познакомимся с ними более подробно.

Логические операции
  • && — логическое и
  • || — логическое или
  • ! — логическое отрицание
  • ^ — XOR

Как работают данные операции, мы уже рассматривали. Стоит отметить, что операции «&&» и «||» считаются достаточно хитро. Например, если первое значение в операции «&&» ложно, то второе значение не проверяется, в операции «или» наоборот, если первое значение истинно, то второе не проверяется. Операция XOR — это логическое сложение по модулю два, также данную операцию называют исключающее или, очевидно, что оно истинно когда оба аргумента различны.

Математические операции
  • + — сложение
  • — вычитание
  • * — умножение
  • / — деление
  • % — остаток от деления

Все эти операции уже знакомы вам из математики. Никаких неожиданностей от них ждать не приходиться, только стоит помнить, что если вы делите два целых числа, то вы получите результат целочисленного деление, т.е 29 / 7 = 4, а 29 % 7 = 1, но если один из аргументов вещественное число, то вы получите обычное деление, а применение операции остатка будет не возможно: 10 / 4.0 = 2.5

Операции сравнения
  • > — больше
  • >= — больше или равно
  • < — меньше
  • <= — меньше или равно
  • == — равно
  • != — неравно

Результатом данных операций является true или false. Операции сравнения применимы не только к численным наборам данным, но и ко многим другим, у которых определен некоторый порядок следования друг за другом. Например, строки можно сравнивать в лексикографическом смысле, т.е по тому, как идут буквы в алфавите: а < б или ба < бб.

Операции сдвига
  • >> — правый сдвиг
  • << — левый сдвиг
  • >>> — сдвиг вправо без учета знака

Новичку данные операции скорее всего не понадобятся, но вам следует знать, что такие операции существуют. Правый сдвиг осуществляет сдвиг побитового представления объекта вправо на какое — то целое число. Левый сдвиг осуществляет тоже самое, но влево. А сдвиг вправо без учета знака не сдвигает знак, так как знак обычно кодируется первым битом числа. Рассмотрим некоторые примеры:

public class test {
public static void main(String[] args) {
int a = 7;//Без учета знака это 111
int b = a >> 1;//Сдвигаем а на 1 вправо
System.out.println(b);// На экран вывелась 3 11
System.out.println(1<<3);//Вывелась 8 100 int c = a << 30; System.out.println(c); //-1073741824 System.out.println(-1>>>3);//536870911
System.out.print(-1>>3);//-1
}
}

Такие результаты на самом деле достаточно просто объяснить, дело в том, что целые числа представлены в памяти компьютера как 32 бита, которые принимают значения 0 или 1, но так как числа записывается, как и в любой системе счисления слева направо, где первый бит означает знак числа, то все становится понятно.

Битовые операции
  • & — побитовое и
  • | — побитовое или
  • ^ — XOR
  • ~ — побитовое дополнение

Данные операции работают с побитовым представлением объекта, и соответствуют операциям из алгебры логики.


Логические операции в C++
Операторы в C++
Работа с переменными в Delphi

  • Alex

    Как понять эту строчку?
    int a = 7;//Без учета знака это 111

    • Ну 111 в двоичной системе счисления это 7. 1*4+1*2+1*1

Научиться программировать

  • на Delphi

  • на Java

  • на C++