- •1.Системы счисления
- •1.1.Перевод чисел в позиционных системах счисления
- •1.1.1.Перевод чисел в десятичную систему счисления
- •1.1.2.Перевод чисел из десятичной системы в двоичную, восьмеричную и шестнадцатеричную
- •1.1.3.Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатеричную и обратно
- •1.2.Арифметические операции в позиционных системах счисления
- •1.2.1.Арифметические операции в восьмеричной и шестнадцатеричной системах счисления
1.1.Перевод чисел в позиционных системах счисления
1.1.1.Перевод чисел в десятичную систему счисления
Преобразование чисел, представленных в двоичной, восьмеричной и шестнадцатеричной системах счисления, в десятичную выполнить довольно легко. Для этого необходимо записать число в развернутой форме и вычислить его значение.
Перевод числа из двоичной системы в десятичную. Возьмем любое двоичное число, например 10,112. Запишем его в развернутой форме и произведем вычисления:
10,112 = 121 + 02° + 12-1 + 12-2 = 12 + 01 + 11/2 + 11/4 = 2,7510.
Перевод чисел из восьмеричной системы в десятичную.
Возьмем любое восьмеричное число, например, 67,58. Запишем его в развернутой форме и произведем вычисления:
67,58= 681 + 78°+ 58-1 = 68 + 71 + 51/8 = 55,62510.
Перевод чисел из шестнадцатеричной системы в десятичную. Возьмем любое шестнадцатеричное число, например, 19F16. Запишем его в развернутой форме (при этом необходимо помнить, что шестнадцатеричная цифра F соответствует десятичному числу 15) и произведем вычисления: 19F16= 1162 + 9161+ F16°= 1256 + 916 + 151 = 41510.
Упражнения
1. Переведите в десятичную систему следующие числа:
двоичные: 101, 110, 111;
восьмеричные: 7, 11, 22;
шестнадцатеричные: 1А, ВF, 9С.
1.1.2.Перевод чисел из десятичной системы в двоичную, восьмеричную и шестнадцатеричную
Перевод чисел из десятичной системы в двоичную, восьмеричную и шестнадцатеричную более сложен и может осуществляться различными способами. Рассмотрим один из алгоритмов перевода на примере перевода чисел из десятичной системы в двоичную, при этом необходимо учитывать, что алгоритмы перевода целых чисел и правильных дробей будут различаться.
Алгоритм перевода целых десятичных чисел в двоичную систему счисления.
Пусть Ацд — целое десятичное число, разложим его в ряд по основанию 2. Тогда в его записи в развернутой форме отсутствуют отрицательные степени основания, т.е. числа 2:
Ацд = аn-12n-1 + аn-2-2n-2 + ... + а121 + а02°.
На первом шаге разделим число А на основание двоичной системы, т.е. на 2. Частное от деления будет равно:
аn-12n-2 + аn-2-2n-3 + ... + а1.
а остаток равен а0..
На втором шаге целое частное опять разделим на 2, остаток от деления будет теперь а1.
Если продолжать этот процесс деления, то после n-го шага получим последовательность остатков:
a0, a1, …, an-1.
Легко заметить, что их последовательность совпадает с обратной последовательностью цифр целого двоичного числа, записанного в свернутой форме:
А2 = аn-1аn-2…a1a0.
Таким образом, достаточно записать остатки в обратной последовательности, чтобы получить искомое двоичное число.
Алгоритм перевода целого десятичного числа в двоичное будет следующим:
Последовательно выполнять деление исходного целого десятичного числа и получаемых целых частных на основание системы ( на 2) до тех пор, пока не получим частное меньше делителя, т.е. меньше 2.
Получить искомое двоичное число, для чего записать полученные остатки в обратной последовательности.
В качестве примера рассмотрим перевод десятичного числа 19 в двоичную систему, записывая результаты в таблицу:
Десятичное число/целое частное |
Делитель (основание системы) |
Остаток |
Цифры двоичного числа |
19 |
2 |
1 |
a0 |
9 |
2 |
1 |
a1 |
4 |
2 |
0 |
a2 |
2 |
2 |
0 |
a3 |
1 |
2 |
1 |
a4 |
В результате получаем двоичное число:
А2 = а4 а3 а2 а1 а0 = 100112.
Алгоритм перевода десятичных дробей в двоичную систему счисления. Пусть .Адд — десятичная дробь, разложим ее в ряд по основанию 2. Тогда в ее записи в развернутой форме отсутствуют положительные степени основания, т.е. числа 2:
Адд = а-12-1+а-22-2+…
На первом шаге умножим число Адд на основание двоичной системы, т.е. на 2. Произведение будет равно:
а-1+а-22-1+…
Целая часть равна а-1, именно это число и является значением первого дробного разряда двоичного числа.
На втором шаге оставшуюся дробную часть опять умножим на 2, получим целую часть, равную а-2, именно это число и является значением второго дробного разряда двоичного числа.
Описанный процесс необходимо продолжать до тех пор, пока в результате умножения мы не получим нулевую дробную часть или не будет достигнута требуемая точность вычислений.
Легко заметить, что последовательность полученных чисел совпадает с последовательностью цифр дробного двоичного числа, записанного в свернутой форме:
А2 = а-1а-2 ...
Алгоритм перевода десятичной дроби в двоичную будет следующим:
Последовательно выполнять умножение исходной десятичной дроби и получаемых дробей на основание системы (на 2) до тех пор, пока не получим нулевую дробную часть или не будет достигнута требуемая точность вычислений.
Получить искомую двоичную дробь, записав полученные целые части произведения в прямой последовательности.
В качестве примера рассмотрим перевод десятичной дроби 0,75 в двоичную систему, записывая результаты в таблицу:
Десятичная дробь/дробная часть произведения |
Множитель (основание системы) |
Целая часть произведения |
Цифры двоичного числа |
0,75 |
2 |
1 |
а-1 |
0,50 |
2 |
1 |
а-2 |
0,00 |
2 |
|
|
В результате получаем двоичную дробь: А2 = 0,а-1а-2 = 0,112.
Перевод чисел из системы с основанием р в систему с основанием q. Перевод чисел из позиционной системы с произвольным основанием р в систему с основанием q производится по алгоритмам, аналогичным рассмотренным выше.
Рассмотрим алгоритм перевода целых чисел на примере перевода целого десятичного числа А10 = 42410 в шестнадцатеричную систему, т.е. из системы счисления с основанием р = 10 в систему счисления с основанием q = 16.
В процессе выполнения алгоритма необходимо обратить внимание, что все действия необходимо выполнять в исходной системе счисления (в данном случае десятичной), а полученные остатки записать цифрами новой системы счисления (в данном случае шестнадцатеричной).
Десятичное число/ целое частное |
Делитель (основание системы) |
Остаток |
Цифры двоичного числа числа |
424 |
16 |
8 |
а0 1 |
26 |
16 |
10 (А) |
а1
|
1 |
16 |
1 |
а2
|
В результате получаем шестнадцатеричное число:
А16 = а2а1а0 = 1А816.
Рассмотрим теперь алгоритм перевода дробных чисел на примере перевода десятичной дроби А10 = 0,40625 в восьмеричную систему, т.е. из системы счисления с основанием р=10 в систему счисления с основанием q=8.
В процессе выполнения алгоритма необходимо обратить внимание, что все действия необходимо выполнять в исходной системе счисления (в данном случае десятичной), а полученные остатки записать цифрами новой системы счисления (в данном случае восьмеричной).
Десятичная дробь/дробная часть произведения |
Множитель (основание системы) |
Целая часть произведения |
Цифры двоичного числа |
0,40625 |
8 |
3 |
a-1 |
0,25 |
8 |
2 |
a-2 |
0,00 |
8 |
|
|
В результате получаем восьмеричную дробь:
A8=a-1a-2=0,328.
Перевод чисел, содержащих и целую и дробную часть, производится в два этапа. Отдельно переводится по соответствующему алгоритму целая часть и отдельно — дробная. В итоговой записи полученного числа целая часть от дробной отделяется запятой.
