- •1.1. Основные этапы создания программы
- •1.2. Алгоритмы
- •2.1. Структура типов в Turbo Pascal
- •Стандартные скалярные типы. Типы целых чисел
- •2.3. Операции побитовой обработки
- •2.4. Представление вещественных чисел в эвм
- •2.5. Символьный тип
- •2.6. Булевский тип
- •2.7. Перечисленный тип
- •2.8. Интервальный тип (диапазон)
- •3.1. Структура программы на turbo pascal
- •3.2. Основные операторы языка
- •3.2.1. Простые операторы
- •3.2.2. Операторы ввода-вывода
- •3.2.3. Структурные операторы
- •3.2.4. Условные операторы
- •3.2.5. Операторы повтора (цикла)
- •4.1. Массивы
- •4.2. Строковый тип
- •4.3. Множества
- •5.1. Процедуры и функции
- •5.2. Процедуры и функции пользователя
- •5.3. Передача параметров по значению и по ссылке
- •5.4. Рекурсивные процедуры и функции
- •6.1. Структура модулей
- •6.2. Компиляция и использование модулей
- •7.1. Записи
- •7.2. Вложенные записи
- •7.3. Записи с вариантами (вариантные записи)
- •7.4. Файлы
- •7.5. Подпрограммы для работы с файлами
- •7.5.1. Процедуры
- •7.5.2. Функции
- •7.6. Примеры программ для обработки файлов
- •7.7. Текстовые файлы
- •8.1. Структура оперативной памяти для программ на Turbo Pascal
- •8.2. Динамические структуры данных
- •8.3. Основные процедуры и функции для работы с динамическими переменными
- •8.4. Динамика выделения памяти в куче
- •8.5. Линейные списки. Способы создания и обработки
- •8.6. Нелинейные списки. Способы создания и обработки
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
2.3. Операции побитовой обработки
Кроме арифметических операций к целым типам применимы операции побитовой обработки.
Арифметическое И (AND) производит логическое умножение операндов в соответствии со следующей таблицей истинности:
18
Исходные операнды записываются в десятичном виде, во время исполнения переводятся в двоичную систему, результат представляется в десятичном виде.
Пример. Вычислить 21 AND 22 при использовании двухбайтового представления целого числа.
|
Двоичное представление |
А = 21 |
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 |
B = 22 |
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 |
A AND B =20 |
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 |
Логическое сложение (OR) выполняет операцию сложения в соответствии со следующей таблицей истинности:
Пример. Вычислить 21 OR 22.
|
Двоичное представление |
А = 21 |
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 |
B = 22 |
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 |
A OR B =23 |
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 |
Исключающая дизъюнкция XOR (исключающее ИЛИ) производит сложение операндов в соответствии со следующей таблицей истинности:
Пример. Вычислить 21 XOR 22
|
Двоичное представление |
А = 21 |
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 |
B = 22 |
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 |
A XOR B = 3 |
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 |
19
Операция NOT является унарной операцией и осуществляет побитовую инверсию двоичного кода. Пример. Вычислить NOT 17.
|
Двоичное представление |
А = 17 |
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 |
NOT 17 = -18 |
1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 |
Операция SHL (A shl N) выполняет побитовый сдвиг содержимого переменной A на N позиций влево и эквивалентна умножению числа A на .
Операция SHR (A shr N) выполняет побитовый сдвиг переменной A на N позиций вправо и эквивалентна целочисленному делению числа A на .
Пример. Вычислить 156 shl 2.
|
Двоичное представление |
А = 156 |
0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 |
A SHL 2 = 624 |
0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 |
Эквивалентная операция: .
Пример. Вычислить 156 shr 2.
|
Двоичное представление |
А = 156 |
0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 |
A SHR 2 = 39 |
0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 |
Эквивалентная операция: .
Операции SHL и SHR используются для сокращения времени выполнения программы, поскольку соответствующие им команды процессора выполняются наиболее быстро. По этой же причине часто для присвоения переменной A нулевого значения используется операция A XOR А.
20