Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
int х=1; int у=х++;
А в этом примере сначала значение х будет использовано для инициализации у, и лишь затем произойдет инкрементация. В результате значение х будет равно 2, а у будет равно 1.
Логические операторы
Логические операторы "и" и "или" (& и |) можно использовать в двух вариантах. Это связано с тем, что, как легко убедиться, для каждого оператора возможны случаи, когда значение первого операнда сразу определяет значение всего логического выражения. Если вторым операндом является значение некоторой функции, то появляется выбор - вызывать ее или нет, причем это решение может сказаться как на скорости, так и на функциональности программы.
Первый вариант операторов (&, |) всегда вычисляет оба операнда, второй же - ( &&, 11 ) не будет продолжать вычисления, если значение выражения уже очевидно. Например:
int х=1;
(х>0) | calculate(x) // в таком выражении произойдет вызов calulate (х>0) 11 calculate(x) // а в этом - нет
Логический оператор отрицания "не" записывается как ! и, конечно, имеет только один вариант использования. Этот оператор меняет булевское значение на противоположное.
int х=1;
х>0 // выражение истинно !(х>0) // выражение ложно
Оператор с условием ? : состоит из трех частей - условия и двух выражений. Сначала вычисляется условие (булевское выражение), а на основании результата значение всего оператора определяется первым выражением в случае получения истины и вторым - если условие ложно. Например, так можно вычислить модуль числа х:
х>0 ? х : -х
Битовые операции
Прежде чем переходить к битовым операциям, необходимо уточнить, каким именно образом целые числа представляются в двоичном виде. Конечно, для неотрицательных величин это практически очевидно:
0 О
1 1
2 10
3 11
4 100
5 101
и так далее. Однако как представляются отрицательные числа? Во-первых, вводят понятие знакового бита. Первый бит начинает отвечать за знак, а именно 0 означает положительное число, 1 — отрицательное. Но не следует думать, что остальные биты остаются неизменными. Например, если рассмотреть 8-битовое представление:
-1 10000001 //это НЕВЕРНО! -2 10000010//это НЕВЕРНО! -3 10000011 //это НЕВЕРНО!
Такой подход неверен! В частности, мы получаем сразу два представления дудя - 00000000 и 100000000, что нерационально. Правильный алгоритм можно представить себе так. Чтобы получить значение -1, надо из 0 вычесть 1: 00000000