
- •Глава 2
- •Глава 2. Обзор языка Java 31_
- •Глава 2. Обзор языка Java
- •Глава 2. Обзор языка Java 37
- •Глава 2. Обзор языка Java 39
- •Глава 2. Обзор языка Java 41
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 43_
- •Глава 2. Обзор языка Java 45_
- •Глава 2. Обзор языка Java 47
- •Глава 2. Обзор языка Java 49_
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 57
- •Глава 3
- •Глава 3. Типы данных, переменные и массивы 53
- •Глава 3. Типы данных, переменные и массивы _ 55
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 59_
- •Глава 3. Типы данных, переменные и массивы 61_
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 65_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 67_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 69_
- •Глава 3. Типы данных, переменные и массивы 71_
- •Глава 3. Типы данных, переменные и массивы 73_
- •Глава 3. Типы данных, переменные и массивы
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы _ 77_ Эта программа генерирует следующий вывод:
- •Глава 3. Типы данных, переменные и массивы 79
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 81_
- •Глава 4
- •Глава 4. Операции 83
- •84 Часть I. Язык Java
- •Глава 4. Операции 85_
- •Глава 4. Операции 87_
- •88_ Часть I. Язык Java
- •Глава 4. Операции 89
- •Глава 4. Операции 91_
- •Глава 4. Операции 93_
- •Глава 4. Операции 95_
- •Глава 4. Операции 97_
- •Глава 4. Операции 99
- •Глава 4. Операции 101
- •Глава 4. Операции 103
- •104 Часть I, Язык Java
- •Глава 4. Операции 105
- •Глава 5
- •Глава 5, Управляющие операторы 107
- •Глава 5. Управляющие операторы 109
- •110 Часть I. Язык Java
- •Глава 5, Управляющие операторы 111
- •Глава 5. Управляющие операторы 113
- •Глава 5. Управляющие операторы
- •Глава 5. Управляющие операторы 117
- •118 Часть I. Язык Java
- •Глава 5. Управляющие операторы 119
- •Глава 5. Управляющие операторы 121
- •122 Часть I. Язык Java
- •Глава 5. Управляющие операторы 123
- •Глава 5. Управляющие операторы 125
- •Глава 5. Управляющие операторы 127
- •Глава 5. Управляющие операторы 129
- •Глава 5. Управляющие операторы
- •Глава 6
- •134 Часть I. Язык Java
- •Глава 6. Введение в классы 135
- •136 Часть I. Язык Java
- •Глава 6. Введение в классы _ 137
- •Глава 6. Введение в классы 139
- •Глава 6. Введение в классы
- •Глава 6. Введение в классы 143
- •Глава 6. Введение в классы 145
- •Глава 6. Введение в классы 147
- •Глава 6. Введение в классы 149
- •Глава 6. Введение в классы 151
- •154 Часть I. Язык Java
- •Глава 6. Введение в классы 155
- •Глава 6. Введение в классы 157
- •Глава 7
- •Глава 7. Методы и классы 159
- •Глава 7. Методы и классы . 161
- •Глава 7. Методы и классы • 163
- •164 Часть I. Язык Java
- •Глава 7. Методы и классы 165
- •Глава 7. Методы и классы 167
- •Глава 7. Методы и классы 169
- •Глава 7, Методы и классы 171-
- •Глава 7. Методы и классы 173
- •Глава 7. Методы и классы 775
- •Глава 7. Методы и классы 177
- •Глава 7. Методы и классы ' 179
- •Глава 7. Методы и классы 1_81_
- •Глава 7. Методы и классы 1_83
- •184 '• Часть I. Язык Java
- •Глава 7. Методы и классы . 185
- •Глава 7. Методы и классы 187
- •Глава 8
- •Глава 8. Наследование 191
- •Глава 8. Наследование 193
- •Глава 8, Наследование 195
- •Глава 8. Наследование 197
- •198 Часть I. Язык Java
- •Глава 8, Наследование 199
- •Глава 8. Наследование 201
- •202 Часть I. Язык Java
- •Глава 8. Наследование 203
- •Глава 8. Наследование 205
- •Глава 8. Наследование 207
- •Глава 8. Наследование 209
- •Глава 8. Наследование 211
- •Глава 8. Наследование 213
- •Глава 8. Наследование 215
- •Глава 8. Наследование 217
- •Глава 12
- •Глава 12. Ввод/вывод, апплеты и другие темы 303_
- •Глава 12. Ввод/вывод, апплеты и другие темы . 305
- •Глава 12. Ввод/вывод, алплеты и другие темы 307
- •Глава 12. Ввод/вывод, апплеты и другие темы 309
- •Глава 12. Ввод/вывод, апплеты и другие темы 311
- •Глава 12. Ввод/вывод, апплаты и другие темы 313
- •314 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 315
- •Глава 12. Ввод/вывод, апплеты и другие темы 317
- •Глава 12. Ввод/вывод, апплеты и другие темы 319
- •320 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 321
- •Глава 12. Ввод/вывод, апплеты и другие темы 323
- •324 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 325
- •326 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплегы и другие темы 327
Глава 4. Операции 91_
00101010 (42) & 00001111 (15)
00001010 (10)
Поразрядное ИЛИ
Операция поразрядного ИЛИ (|) комбинирует биты так, что, если хотя бы один (любой) из битов в операндах равен 1, то результирующий бит тоже 1, например:
00101010 (42) I 00001111 (15)
00101111 (47)
Поразрядное исключающее ИЛИ
Операция поразрядного исключающего ИЛИ (А) комбинирует биты так, что, если только один операнд есть 1, то и результат есть 1. Иначе, результат нулевой. Следующий пример показывает эффект операции л. Этот пример демонстрирует также одно полезное свойство операции исключающего ИЛИ. Обратите внимание, что комбинация двоичных разрядов числа 42 инвертирована везде, где второй операнд 1, а где второй операнд 0, биты первого операнда остаются без изменения. При выполнении некоторых типов разрядных манипуляций вы найдете это свойство весьма полезным.
00101010 (42) л 00001111 (15)
00100101 (37)
Использование поразрядных логических операций
Следующая программа демонстрирует поразрядные логические операции:
// Демонстрирует поразрядные логические операции, class BitLogic {
public static void main(String args[]) { String binary[] = (
"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" };
int a = 3; //0 + 2 + 1 или ООН в двоичной форме int b=6; //4+2 + 0 или ОНО в двоичной форме int с = а ! b; int d = а & b;
j?Ј Часть I. Язык Java
int e = а л b;
int f = (~a & b) I (a & ~b) ;
int g = ~a & OxOf;
System.out.println(" a = " + binaryfa])
System.out.println(" b = " + binary[b])
System.out.println(" a|b = " + binary[c])
System, out.println(" a&b = " + binary[d])
System.out.println(" алЬ = " + binaryfe])
System.out.println("~a&bIa&~b = " + binaryff])
System.out.println(" ~a = " + binarytg])
В этом примере целые переменные а и ь содержат числа (3 и 6), битовые образы которых хранят (в младших разрядах) четыре возможные комбинации двух бинарных цифр 0-0, 0-1, 1-1 и 1-0. Можно видеть, как операции |, & и Л, работая на каждом бите а и ь, размещают результаты в переменных с, d и е. Значение переменной f формирует выражение <~а & b) l (а & ~ь>, использующее все допустимые поразрядные операции. Битовые значения, присвоенные переменным е и f, одинаковы. Массив с именем binary содержит строки с двоичными представлениями чисел от 0 до 15. Массив построен так, чтобы элемент binary [п] хранил правильное строковое представление бинарного значения индекса п. Выражение ~а & OxOf (где шест-надцатеричная константа OxOf в бинарной форме представляется как 0000 1111) вычисляется уменьшением своего значения до величины меньшей, чем 16, так чтобы это значение можно было напечатать при помощи массива binary. Вывод этой программы:
а = ООН
b = ОНО
а|Ь = 0111
а&Ь = 0010
аЛЬ = 0101
~a&b|a&~b = 0101
~а = 1100
Левый сдвиг
Операция левого сдвига («) смещает все биты значения влево на указанное количество разрядов. Она имеет следующую общую форму:
value « лит
где питопределяет число позиций левого сдвига значения в value. To есть « сдвигает все биты в указанном значении влево на число разрядных позиций.