- •1. Двоичная система счисления.
- •2. Восьмеричная система счисления.
- •3. Шестнадцатеричная система счисления.
- •4. Сложение и вычитание в 2, 8 и 16 c/c.
- •2. Вещественные числа (числа с плавающей запятой).
- •3. Логические данные.
- •2. Зарезервированные слова.
- •X a8 alpha Massiv z52d9 eps Res_52_a ___75
- •6. Метка.
- •2. Целые типы данных.
- •4. Вещественные типы.
- •1. Раздел описания меток.
- •2. Раздел описания констант.
- •3. Раздел описания типов.
- •4. Раздел описания переменных.
- •6. Раздел операторов.
- •7. Последовательность разделов.
- •1. Формульно-словесный способ.
- •2. Блок-схемный способ.
- •Ввод - вывод одномерного массива
- •2. Ввод массива из текстового файла.
- •3. Вывод одномерного массива на экран.
- •Примеры обработки одномерных массивов
- •1. Параметр цикла должен быть ординального типа.
- •2. Параметр должен быть описан в том же блоке, где находится сам оператор цикла.
- •5. В теле цикла параметр не должен изменяться.
- •6. Начальное и конечное значения параметра цикла вычисляются только один раз, до начала цикла.
- •7. При нормальном завершении цикла значение его параметра считается неопределенным.
- •Контроль ординальных переменных
- •Вставка элемента в упорядоченный массив
- •Удаление элементов из массива
- •«Школьный» алгоритм сортировки
- •Группировка массива методом прямой выборки
- •Группировка массива методом прямого обмена
- •Var c : array[1..10,1..15,1..8] of real.
- •1. Ввод элементов матрицы с клавиатуры.
- •2. Ввод матрицы из текстового файла.
- •3. Вывод матрицы на экран.
- •Тождественные и совместимые типы
- •Обработка в процедуре одномерных массивов с различными именами типов
- •Обработка в процедуре матриц с различными именами типов
- •Var s : string[V],
- •Процедуры и функции для обработки строк
- •Определение битовой структуры поля памяти
- •Процедуры и функции для файлов любого типа
- •Var p : pointer;
- •1. Формирование стека из текстового файла.
- •7. Определение значения и местоположения максимального элемента в стеке.
- •8. Удаление из стека максимального элемента.
- •9. Добавление элемента в упорядоченный стек.
- •2. Добавление нового элемента в очередь.
- •3. Удаление элемента из очереди.
- •6. Удаление произвольного элемента из очереди.
- •7. Добавление нового элемента в произвольное место очереди.
- •1. Формирование дека.
- •Var sin : integer;
- •Процедура заполнения FillChar
- •Процедура перемещения данных move
- •Управление экраном в текстовом режиме
- •Сохранение и восстановление экрана
- •Interface
- •Implementation
- •Процедуры управления текстовым режимом экрана
- •Intr(n:byte; Var Reg:Registers),
- •If KeyPressed then
- •Автоматическая оптимизация программ
- •1. Свертывание констант.
- •2. Слияние констант.
- •3. Вычисление по короткой схеме.
- •4. Удаление неиспользуемого кода.
- •If false then
- •5. Эффективная компоновка.
- •Оверлейная структура программы
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Использование сопроцессора
2. Восьмеричная система счисления.
Основанием системы является число 8. Для изображения произвольного числа используются 8 цифр: 0, 1, 2, 3, 4, 5, 6, 7.
Перевод 8 10 :
35174,
= 3
+ 5
+ 1
+ 7
+ 4
+ 6
= 34096
+ 5512
+
+164
+ 78
+ 4 + 6/8 = 12288 + 2560 + 64 + 56 + 4 + 3/4 = 14972,7
.
Пример 2. Перевод 10 8 . Схема перевода такая же, как и для 2 с/c.
397,
= 615,1
397 8 0, 2 8
32 49 8 1, 6 8
77 48 6 4, 8 8
72 1 6, 4 8
5 3, 2 8
1, 6 8
…………
0,
= 0,146314631… = 0,(1463![]()
Полученная восьмеричная дробь числа (615,15) округлена до двух цифр.
Правило
округления:
чтобы округлить дробное число до
цифр, нужно к (
+1)-ой
цифре добавить половину цены разряда
для данной системы счисления, после
чего отбросить все дробные цифры, начиная
с
-ой.
Для 8 c/c половина цены разряда равна 4,
для 2 с/c - 1, для 16 c/c - 8.
В
рассмотренном выше примере имеем (для
= 2):
0, 1 4 6 3 1 4 6 3
+ 4
0, 1 5 2 3 1 4 6 3
Примечание. Здесь сложение выполнено в восьмеричной системе счисления.
Перевод 8 2. Для перевода восьмеричного числа в 2 c/c нужно каждую восьмеричную цифру записать в виде двоичной триады, т.е. трех двоичных цифр.
|
Восьмеричное число |
Двоичное число |
Двоичная триада |
|
0 1 2 3 4 5 6 7 |
0 1 10 11 100 101 110 111 |
000 001 010 011 100 101 110 111 |
Например,
3763,2
=
011 111 110 011 , 010 100
= 11111110011,010
(отброшены незначащие нули).
Приведенное
выше правило перевода 8
2 связано с тем, что 8 =
.
В самом деле,
3763,24
= 3
+ 7
+ 6
+ 3
+ 2
+ 4
= (0
+ 1
+ 1
)
+ (1
+ 1
+ 1
)
+ (1
+ 1
+
0
)
+ (0
+ 1
+ 1
)
+ (0
+ 1
+ 0
)
+ (1
+ 0
+
0
)
= 0
+
1
+
1
+
1
+
1
+
1
+
1
+
1
+
0
+
0
+
1
+
1
+
0
+
1
+0
+
1
+
0
+
0
=
=
011 111 110 011, 010 10
.
Для перевода 2 8 следует разделить двоичное число влево и вправо от запятой на триады, а затем заменить каждую триаду одной восьмеричной цифрой. Если первая триада в целой части или последняя триада в дробной части числа получаются неполными, то нужно дополнить их незначащими нулями.
Пример 3.
1011110111,1011010
=
001011110111,101101010
= 1367,55![]()
В связи с тем, что перевод 10 8 или 8 10 выполняется быстрее, чем перевод 10 2 или 2 10, то перевод 10 2, как правило, производят по схеме 10 8 2 , а вместо 2 10 соответственно 2 8 10 .
3. Шестнадцатеричная система счисления.
Основанием системы является число 16. Для изображения произвольного числа нужно использовать 16 цифр. Так как цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 недостаточно, то дополнительно применяют первые буквы латинского алфавита: A (цифра 10), B (цифра 11), C (цифра 12), D(цифра 13), E (цифра 14), F (цифра 15).
Пример 4. Перевод 16 10:
A8B7,E
= 101
+ 81
+ 111
+ 71
+ 141
= 104096
+ 8256
+
+
1116
+ 7 + 14/16 = 43191,87
.
Пример 5. Перевод 10 16 .
7643,
= 1EDB,
7643 16 0, 4 16
64 477 16 6, 4 16
124 32 29 16 6, 4 16
112 157 16 1 6, 4 16
123 144 14 …………
112 13
11
Перевод
16
2
. Так как 16 =
, то в этом случае каждая шестнадцатеричная
цифра должна быть представлена двоичной
тетрадой.
-
Шестнадцате-
ричное число
Двоичное
число
Двоичная
тетрада
Шестнадцате-
ричное число
Двоичное
число
Двоичная
тетрада
0
1
2
3
4
5
6
7
0
1
10
11
100
101
110
111
0000
0001
0010
0011
0100
0101
0110
0111
8
9
A
B
C
D
E
F
1000
1001
1010
1011
1100
1101
1110
1111
1000
1001
1010
1011
1100
1101
1110
1111
Пример 6.
4AD,B8 = 0100 1010 1101, 1011 1000 = 10010101101,10111.
Перевод 2 16. Исходное число разделяют влево и вправо от запятой на тетрады, а затем каждую тетраду записывают одной шестнадцатеричной цифрой.
Пример 7.
11101111100001,0110
=0011101111100001,01101100
= 3BE1,6С![]()
Для сокращения вычислений вместо 10 2 выполняют 10 16 2 , а вместо 2 10 выполняют 2 16 10 .
Примечание. Очевидно, что переводы из 16 с/с в 8 с/с и наоборот выполняют с применением 2 с/с как буферной. Например, перевод 16 8 производится по схеме 16 2 8.
