Теория к ВМСС (987279), страница 3
Текст из файла (страница 3)
Приведем примеры действий в шестнадцатеричной системе счисления:
1. Сложение:
A1F A19 A20
+ 1 + BC + F5
A20 AD5 B15
2. Вычитание:
AD5 B15
– A19 – F5
BC A20
3. Умножение:
A0F FFA3
1A DE
6496 DFAEA
A0F CFB47
10586 DDAF5A
4. Деление:
D DAF5A FFA3
– CFB47 DE
DFAEA
DFAEA
0
Выше рассмотрены таблицы сложения и умножения для двоичной и шестнадцатеричной систем счисления. Приведены примеры использования их при выполнении арифметических операций. Аналогично строятся таблицы и осуществляются арифметические операции и для других позиционных систем счисления.
3. Перевод чисел из одной позиционной системы
счисления в другую
В дальнейшем изложении при записи чисел основание системы счисления будем записывать в виде нижнего и индекса справа от числа, например:
1012 8310 2AF,5Е16
Существует несколько способов перевода чисел из одной системы счисления в другую. Наибольшее распространение получили два из них. Первый способ основывается на выполнении арифметических операций в новой системе счисления, второй – в старой.
3.1. Основные способы перевода чисел
Ниже рассматриваются указанные способы перевода чисел из одной системы в другую и формируются общие правила перевода чисел.
1-й способ.
Прежде чем дать формулу перевода в общем виде, рассмотрим несколько примеров.
Пример 1. Число 2546, заданное в шестеричной системе счисления, перевести перевод 6 10. Представим это число в виде полинома в соответствии с формулой (1):
2546 = 262+561+460,
в котором каждая цифра записана в новой системе счисления (в данном случае в десятичной). Выполнив требуемые вычисления, получим:
2546 = 10610.
Пример 2. Число 254,248, заданное в восьмеричной системе счисления, перевести в двоичную систему счисления, т.е. сделать перевод 82. Представим это число в виде полинома:
254,248 = 282 + 581 + 480 + 28-1 + 48-2,
в котором затем каждую цифру запишем в новой системе счисления (в данном случае в двоичной). Получим:
10100010 + 10110001 + 10010000 + 101000-1 + 1001000-10.
Выполнив вычисления в новой системе счисления, будем иметь
254,248 = 10101100,0101002.
Так как арифметические операции определены однозначно во всех системах счисления, то каждому числу в заданной системе счисления Q соответствует одно и только одно число в новой системе счисления P.
Рассмотренный способ перевода числе из Q-ичной системы счисления в P-ичную сводится к следующим правилам:
-
записать переводимое число в виде полинома в старой системе счисления (Q);
-
в полученном полиноме заменить основание Q и все коэффициенты числами в новой системе счисления;
-
выполнить арифметические операции в новой системе счисления.
Пример 3. Дано число 9В317 . Представить его в десятичной системе счисления:
9В317 = 9Q2 + BQ + 3 = 9172 + 1117 + 3 =279110.
При необходимости перевода чисел из десятичной системы счисления в любую другую (10Q) вычисления удобнее выполнять в десятичной системе счисления, поэтому первый способ перевода становится неудобным.
2-й способ.
Вычисления требуется выполнять в старой системе счисления. Сначала разберем несколько примеров.
Пример 4. Представить десятичное число 941 в шестнадцатеричной системе счисления. Искомое число имеет вид:
(qnqn-1…q1q0)16.
Задача сводится к определению qi, принадлежащих базису шестнадцатеричной системы счисления. Используя представления числа в виде полинома, будем иметь:
94110=qn16n10+ qn-116n-110+…+q116+q0.
Числа 941 и 16 заданы в десятичной системе счисления. Легко видеть, что при делении 941 на 16 полученный остаток, выраженный соответствующей цифрой базиса шестнадцатеричной системы счисления, равен последнему слагаемому нашего многочлена:
941 16
80 58
141
128
13
Следовательно,
q0=1310=D16 и
94110=(qn16n-110+qn-116n-210…+...+q1)1610+q0;
5810 = qn16n-110+qn-116n-210+...+q1.
Рассуждая аналогично, получим
58 16
48 4
10
Следовательно, q1 = 1010 = A16; q2 = 4.
Таким образом, 94110 = 4AD16.
Пример 5. Представить десятичное число 0,50390625 в шестнадцатеричной системе счисления. Искомое число будет иметь вид:
(0, q-1 q-2 ...… q-v…)16.
Наша задача сводится к определению qi, принадлежащих базису шестнадцатеричной системы счисления. Используя представление числа в виде полинома, получаем:
0,5039062510 = q-116-110+q-216-210+...…+q-v16-v10…
Умножив обе части этого равенства на 16, получим
160,5039062510=q-1+q-216-110+…...+q-v16-v+110…
Очевидно, что полученная при умножении 0,50390625 на 16 целая часть, замененная соответствующей цифрой базиса шестнадцатеричной системы счисления, равна q-1, т.е. найдена первая цифра в представлении искомого числа. В данном случае:
0,50390625
16
3 02343750
+ 5 0390625
8,06250000
и q-1=8.
Для получения следующих цифр поступаем аналогично:
0,0625
16
3750
+ 625
1,0000
Таким образом q-2=1, и окончательно получаем:
0,5039062510=0,8116.
При переводе целых чисел выполнялись операции деления, а при переводе дробной части – операции умножения, следовательно, при переводе смешанных чисел следует отдельно переводить целую и дробную части числа.
Пример 6. Представить десятичное число 291,25 в восьмеричной системе исчисления.
1. Переведем целую часть числа в восьмеричную систему счисления:
291 8
—24 36 8
51 –32 4
—48 4
3
Получим 29110=4438.
2. Переведем дробную часть в восьмеричную систему счисления:
0,25
8
2,00
Получим 0,2510=0,28.
3. В итоге будем иметь 29110=4438.
Данный способ не всегда позволяет при переводе дробной части получить конечную величину. Например, при переводе десятичного числа 0,3 в восьмеричную систему счисления последовательно получаем
0,3 0,4 0,2 0,6 0,8 0,4
8 8 8 8 8 8
2,4 2,4 1.6 4,8 6,4 3,2
т.е. имеем периодическую дробь 0,310=0,2(3146)8.
Рассмотрим второй способ перевода чисел из системы счисления с основанием P (QP) в общем виде. Так как при переходе от одной системы счисления к другой следует переводить отдельно целую и дробную части, то опишем их перевод отдельно
3.2. Перевод целых чисел
Пусть дано целое число NQ >=0. Требуется перенести в
Р-ичную систему счисления, т.е. найти Np=(ps ps-1 . . . p1 p0), для чего определить pi, принадлежащие базису (0, 1, 2–, . . ., P-1); i изменяется от 0 до s.
Перевод целого из Q-ичной системы счисления в Р-ичную сводится к следующим правилам.
1. Данное число разделить на основание (Р) новой системы счисления. Остаток от деления записать в новой системе счисления.
Это младшая цифра (p0) искомого числа.
2. Если частное равно 0, то искомое число получено.
3. Если частное не равно 0, то разделить его на Р. Остаток от деления записать в новой системе счисления. Это предыдущая цифра искомого числа. Процесс получения цифр продолжать до тех пор, пока частное не станет равным нулю.
Пример 7.
Дано число 279110 в десятичной системе счисления. Представить его в семнадцатеричной системе счисления.
2791 17 164 17 9 17
–
17 164 153 9 –0 0
109 11=В 9
– 102
71
–68
3
Получим 279110=9В317.
3.3. Перевод правильной дроби
Пусть дано целое число XQ (0 < XQ <1). Требуется перенести его в Р-ичную систему счисления, т.е. найти Xp=0, p-1 p-2 . . . p-t . . .. Для этого определим pi, принадлежащие базису (0, 1, . . ., P-1); i принимает значения –1, –2, . . ..
1. Умножить данное число на Р – основание новой системы счисления. Цифра, получившаяся в целой части произведения, является первой цифрой после запятой в искомом числе.
2. Дробную часть произведения умножить на Р. Цифра, получившаяся в целой части произведения, является следующей цифрой в искомом числе.
Если дробная часть произведения равна нулю или достигнута заданная точность представления числа в новой системе счисления, то результат получен. Иначе повторить п. 2.
Пример 8.
Дано число 0.22510. Перевести его в восьмеричную систему счисления, сохранив в результате четыре цифры после запятой:
0.225 8 = 1.800
0.800 8 = 6.4
0.4 8 = 3.2
0.2 8 = 1.6
0.6 8 = 4.8
Получим 0.22510 = 0.16318
Пример 9. Дробь 0.3110 перевести в двоичную систему счисления:
0.31 0.96
2 2
0.62 1.92
2 2
1.24 1.84
2 2
0.48 1.68
2
0.96
в результате 0.3110 0.0100112
Из последних примеров 8 и 9 следует, что перевод дробей может представлять собой бесконечный процесс, а результат перевода – приближённый.
Число цифр в числе, представленном в системе счисления с основанием p, определяется из условия, что точность числа в системе счисления с основанием q.
Перевод двоичной дроби в десятичную можно осуществлять сложением всех цифр со степенями 2, соответствующими позициям разрядов исходной двоичной дроби, в которых цифры равны 1.
Пример 10. Дробь, 0,11012 перевести в десятичную систему счисления.
Представить исходное число в виде:
0.11012=[1*2-1+1*2-2+0*2-3+1*2-4] 10=[0.5+0.25+0.0625]10=0.812510