- •1. Двоичная система счисления.
- •2. Восьмеричная система счисления.
- •3. Шестнадцатеричная система счисления.
- •4. Сложение и вычитание в 2, 8 и 16 c/c.
- •2. Вещественные числа (числа с плавающей запятой).
- •3. Логические данные.
- •1. Алфавит языка Си
- •2. Элементы языка
- •3. Типы данных
- •1. Формульно-словесный способ.
- •2. Блок-схемный способ.
- •Ввод - вывод одномерного массива
- •2. Вывод одномерного массива на экран.
- •Примеры обработки одномерных массивов
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 8 4, 8 8
72 1 0 0 6, 4 8
5 6 3, 2 8
1, 6 8
…………
39710 = 6158 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 16 6, 4 16
123 144 14 0 0 …………
112 13 1
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.