
4.Десятичная система счисления.
Десятичная система счисления — это позиционная система счисления с основанием 10. Для записи чисел в десятичной системе используется 10 цифр от 0 до 9 (0,1,2,3,4,5,6,7,8,9) — эти цифры называются арабскими.
Десятичная система является одной из наиболее распространенных.
История: считается, что основание десять изначально связано с количеством пальцев на руках. Первая запись позиционной десятичной системы обнаружена в Индии в 595 г. В ней для записи числа использовались символы, рядом с которыми добавляли обозначение разряда. Затем разряды отмечать перестали, но у каждой цифры осталась определенная позиция. Соответственно, пустая позиция отмечалась нулем.
Индийская нумерация распространилась в арабские страны. На нее обратил внимание знаменитый математик Аль-Хорезми, основатель алгебры. Она написал первое руководство по арифметике, основанной на позиционном десятичном счислении. Так как его работа была написана на арабском, то в Европе закрепилось название «арабские цифры».
В работах Аль-Хорезми были изложены правила (алгоритмы) сложения и умножения десятичных чисел. От европейской транслитерации имени ученого — «Algoritmi» появился термин «алгоритм», впоследствии обозначающий всякий регулярный процесс, за конечное число шагов дающий решение.
Применение: десятичная система счисления испольуется при повседневном счете.
Ниже приведены правила и примеры перевода из двоичной, восьмеричной и шестнадцатеричной систем счисления в десятичную.
Перстни с сапфирами, золотые крестики, браслеты из золота, подвески с бриллиантами.
Арифметические операции.
Сложение:
37726
+45875
------
83601
37726
+45875
------
83601
806412
+ 2043
------
808455
454545
+ 500
------
455045
56789
+ 1000
-----
57789
Вычитание:
480710
-479841
-------
869
600000
-599875
------
125
101344
- 58905
------
42439
530002
-511886
------
18116
10000000
- 1969100
--------
8030900
Умножение:
756
* 98
-----
6048
6804
-----
74088
207
* 708
-----
1656
1449
-------
146556
3090
* 95
----
1545
2781
------
293550
2030
* 970
-----
1421
1827
------
1969100
78
* 87
----
546
524
----
6786
Деление:
7752 |38
- |----
76 |204
-----
152
-
152
------
0
13075 |523
- |----
1046 |
------
2615
-
2615
------
0
234264 |908
- |----
1816 |258
------
5266
-
4540
------
7264
-
7264
------
0
40242 |706
- |----
3530 |57
-----
4942
-
4942
-----
0
807750 |8975
- |----
80775 |90
------
0
5.Шестнадцатеричная система счисления.
Шестнадцатеричная система счисления — это позиционная система счисления с основанием 16. Для записи чисел в шестнадцатеричной системе используется 10 цифр от нуля до девяти (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) и латинские буквы A, B, C, D, E, F, обозначающие числа от 10 до 15.
Таким образом, все символы шестнадцатеричной системы:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
История: шестнадцатеричная система счисления внедрена американской корпорацией IBM. Широко используется в программировании для IBM-совместимых компьютеров. Минимальной адресуемой (пересылаемой между компонентами компьютера) единицей информации является байт, состоящий, как правило, из 8 бит (англ. bit — binary digit — двоичная цифра, цифра двоичной системы), а два байта, то есть 16 бит, составляют машинное слово (команду). Таким образом, для записи команд удобно использовать систему с основанием 16.
Применение: шестнадцатеричная система используется в цифровой электронике и компьютерной технике, в частности в низкоуровневом программировании на языке ассемблера для различных ЭВМ.
Перевод чисел
Перевод из шестнадцатеричной в десятичную
Для перевода числа 385 из десятичной в шестнадцатеричнудю систему разделим его нацело на 16 (16 — это основание шестнадцатеричной системы) и запишем остаток от деления:
385 / 16 = 24, в остатке 1, проверим: 16 * 24 + 1 = 384 + 1 = 385
При делении на шестнадцать остаток может быть любым числом от нуля до семи.
Полученное частное (24) снова разделим на 16 и запишем остаток, и так до тех пор, пока не получим 0.
Итак, запишем перевод в шестнадцатеричную систему полностью:
385 / 16 = 24 в остатке 1
24 / 16 = 1 в остатке 8
1 / 16 = 0 в остатке 1
Затем нужно записать полученные остатки, начиная снизу, и мы получим представление числа в двоичной системе:
38510 = 18116
Обратите внимание на последний шаг: 1 / 16 = 0 (в остатке 1), — при целочисленном делении меньшего числа на большее результатом всегда будет 0, а в остатке делимое, т.е. исходное число.
Правило перевода из десятичной системы счисления в шестнадцатеричную:
для перевода чисел из десятичной системы в шестнадцатеричную нужно разделить число на 16, где 16 — основание шестнадцатеричной системы, и записать остаток от деления. Полученное частное снова разделить на 16 и также записать остаток. Повторять действия, пока частное не станет равным 0. Записать все остатки в обратном порядке.
Пример 1. Переведем число 4132 в шестнадцатеричную систему счисления:
4132 / 16 = 258 в остатке 4
258 / 16 = 16 в остатке 2
16 / 16 = 1 в остатке 0
1 / 16 = 0 в остатке 1
413210 = 102416
Пример 2. Переведем число 1021 в шестнадцатеричную систему счисления:
1021 / 16 = 63 в остатке 13 (D)
63 / 16 = 3 в остатке 15 (F)
3 / 16 = 0 в остатке 3
102110 = 3FD16
В примере выше остатки от деления 13 и 15 заменены соответствующими буквами, согласно обозначениям шестнадцатеричной системы (10 — A, 11 — B, 12 — C, 13 — D, 14 — E, 15 — F)
Проверить полученные значения можно с помощью стандартного калькулятора в любой операционной системе (калькулятор в Windows в инженерном виде, в Linux gcalctool или kcalc). Системы счисления в калькуляторе обозначаются сокращенно: dec — десятичная, bin — двоичная, oct — восьмеричная, hex — шестнадцатеричная.
Перевод из шестнадцатеричной в десятичную
Необходимо представить число 5ВС16 в десятичном виде. Исходное шестнадцатеричное число изображается тремя знаками. Поэтому для перевода в десятичную систему счисления запишем справа налево первые 3 степени числа 16 (от 0 до 2 степени), каждое последующее число получается путем умножения предыдущего на 16:
162 161 160
256 16 1
Запишем под степенями наше шестнадцатеричное число (слева направо, как есть):
256 16 1
5 B (11) C (12)
Затем заменим буквенные обозначения цифровыми согласно знакам шестнадцатеричной системы и умножим каждое число на соответствующую ему степень шестнадцати, найдем сумму всех произведений:
5 * 256 + В * 16 + С * 1 = 5 * 256 + 11 * 16 + 12 * 1 = 1468,
это и есть результат перевода:
5BC16 = 146810
Итак, запишем правило перевода из шестнадцатеричной системы счисления в десятичную: для перевода чисел из шестнадцатеричной системы счисления в десятичную сосчитаем количество разрядов шестнадцатеричного числа N и запишем степени шестнадцати от нулевой до N - 1 справа налево (помним, что каждая последующая степень получается умножением предыдушей на 16). Запишем под ними шестнадцатеричное число в прямом порядке. Умножим записанные числа на соответствующие им степени. Найдем сумму всех произведений. Результатом будет десятичное число, представленное в виде суммы различных степеней числа 16, умноженных на соответствующие коэффициенты.
Пример 1. Перевести число 2116 в десятичную систему. Считаем число разрядов — 2, значит, нужно записать справа налево степени шестнадцати от нулевой до первой:
161 160
16 1
Запишем под степенями наше шестнадцатеричное число (слева направо, как есть):
16 1
2 1
Умножим числа на соответствующие степени шестнадцати и сложим их:
2 * 16 + 1 * 1 = 32 + 1 = 33, это и есть результат перевода:
2116 = 3310
Таким образом, шестнадцатеричное число 211 представлено в виде суммы ряда степеней числа 16 (основание шестнадцатеричной системы):
Пример 2. Перевести число 45116 в десятичную систему. Считаем число разрядов — 3, значит, нужно записать справа налево степени шестнадцати от нулевой до второй:
162 161 160
256 16 1
Запишем под степенями наше шестнадцатеричное число (слева направо, как есть):
256 16 1
4 5 1
Найдем сумму степеней шестнадцати, умноженных на соответствующие им коэффициенты:
4 * 256 + 5 * 16 + 1 * 1 = 1024 + 80 + 1 = 1105,
это и есть результат перевода:
45116 = 110510
С помощью специальной программы — шестнадцатеричного просмотровщика-редактора, можно просмотреть любой файл в виде набора байтов, представленных в шестнадцатеричном коде и внести определенные изменения. Это широко используется как для отладки, так и для взлома программ.
Арифметические операции.
Сложение:
3B3,6
+ 38B,4
-----
73E,A
1A5
+ C35
----
DDA
1F4
+ 911
----
B05
A1C
+ 195
----
BB1
5B4
+ C52
----
1206
Вычитание:
27D,D8
- 191,2
------
EC,B8
A1C
- 195
----
887
0,A3
- 0,15
-----
0,8E
B19
- 7FA
-----
31F
C9,4
- 3B,C
----
8D,8
Умножение:
61,A
* 40,D
----
4F 52
1868
--------
18 ,B752
20A4
* B15
-------
A334
20A4
1670C
--------
169B974
F7CA
* B9
-----
8B61A
AA5AE
-------
B310FA
Деление:
4C98 |2B
- |-----
2B |1C8
-----
219
-
204
-----
158
-
158
-----
0
B2B8 |4C
- |-----
98 |25A
-----
1AB
-
17C
-----
2F8
-
2F8
-----
0
22CD8 |CE
- |----
19C |2B4
------
90D
-
8DA
------
338
-
338
------
0
6F78 |8
- |----
68 |DEF
-----
77
-
70
-----
78
-
78
-----
0