В конструкции вычислительных устройств ключевую роль играют системы счисления. Первые механические счетные машины были разработаны на основе десятичной системы счисления. Применение вместо нее двоичной системы позволило существенно уменьшить размеры механических счетных устройств. В истории известны случаи использования для вычислений различных систем счисления, например, шестидесятеричной древневавилонской, смешанной римской, непозиционной десятичной древнеегипетской и др.
В современных компьютерах для представления данных и вычислений используется двоичная система счисления. Тем не менее, актуальным является изучение способов применения и других систем счисления.
В настоящей главе рассматриваются традиционные позиционные системы счисления с целым положительным основанием, методы преобразования представления действительного числа между десятичной и другими системами счисления, а также между системой счисления с основанием p и системой счисления с основанием, являющимся степенью p. Обсуждаются арифметические операции в системах счисления.
Система счисления - символический метод представления чисел с помощью письменных знаков. Эти знаки, или группы знаков, называются цифрами. Если число представляется в виде последовательности цифр, и значение цифры зависит от ее позиции, или разряда в этой последовательности, то система счисления называется позиционной. Позиционная система счисления называется p-ичной, если для представления чисел в ней используется p цифр со значениями от 0 до p - 1 включительно, а значения разрядов определяются степенями числа p. Число p называется основанием системы счисления.
Пусть p - целое число, p> 1. Неотрицательное действительное число x может быть разложено по степеням числа p следующим образом:
где $$b_i$$ - целые числа, $$0 \le b_i < p$$, для i = 0, 1, 2, ...; числа $$b_i$$ называются коэффициентами при степенях числа p. Запись числа x в виде
где вместо чисел $$b_i$$ могут использоваться заменяющие их знаки, называется представлением числа x в p-ичной системе счисления, или p-ичным представлением, а также p-ичным числом или представлением в p-ичном виде. Если p = 10, то символ p обычно опускается. Знаки, которые используются для обозначения чисел $$b_i$$, называются цифрами.
В дальнейшем в p-ичном представлении числа, приведенном выше, будут использоваться как сами числа $$b_i$$, так и обозначающие их цифры. Различие обозначений будет ясно из контекста.
Пример 1. В двоичной системе счисления для представления чисел используются цифры 0 и 1, в троичной - 0, 1 и 2, в шестнадцатеричной - цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e и f. Значения последних шести цифр соответственно равны 10, 11, 12, 13, 14 и 15.
Если дробная часть числа имеет период, то его заключают в круглые скобки, в виде
$$0,22321321321... = 0,22(321)$$Пример 2. Число 7,8 можно представить следующим образом:
$$7,8 = 111,(1100)_2 = 21,(2101)_3 = 13,(30)_4 = 7,(6314)_8 = 7,(c)_{16}$$Пример 3. Найдем представление числа 9,625 в двоичной системе счисления. Имеем: 9,625 = 9 + 0,625 = 8 + 1 + 0,5 + 0,125. Поэтому разложение этого числа по степеням 2 имеет вид:
Следовательно, $$9,625 = 1001,101_2$$.
Пример 4. Найдем десятичное представление числа $$201,102_3$$:
$$2*3^2+0*3+1+1*3^{-1}+0*3^{-2}+2*3^{-3}=19\frac{11}{27}=19,(407)$$Пусть действительное число x имеет разложение (1). Обозначим через xint - целую часть числа x, а через xfract - дробную:
xint = [x], xfract = {x}
так что x = xint + xfract. Тогда в системе счисления с основанием p представление целой и дробной части числа x соответственно имеет вид:
Пусть a и b - целые числа и b не равно 0. Обозначим через a div b - целую часть частного, а через a mod b - остаток от деления a на b.
1. Преобразование целой части числа. Из разложения (1) следует, что целая часть числа x выглядит следующим образом:
Поэтому $$b_n = x_{int} \mod p$$. Далее, $$x_{int} \;\text{div}\; p = b_0p^{n - 1} + b_1p^{n - 2} + ... + b_{n - 1}$$, так что аналогичным образом можно найти коэффициент $$b_{n - 1}$$, и т. д.
Положим $$y_0 = x_{int}$$. Имеем:
$$y_0 = y_1p + b_n,\\ y_1 = y_2p + b_{n - 1},\\ \dots\\ y_{n - 1}= y_np + b_1, \\ y_n = b_0, $$где $$y_j = y_{j - 1} \;\text{div}\; p$$, для $$j = 1, 2, \dots, n; b_i = y_{n - i} \mod p$$, для $$i = 0, 1, \dots, n$$. Данный способ вычисления коэффициентов $$b_i$$ соответствует методу деления "уголком":
Пример 5. Представление числа 73 в троичной системе счисления можно найти следующим образом (ср. с делением "уголком"):
73 = 24 * 3 + 1; 24 = 8 * 3 + 0; 8 = 2 * 3 + 2.
Поэтому $$73 = 2201_3$$.
Другим способом вычисления представления целого числа $$x_{int}$$ в системе счисления с основанием p является метод выделения полных степеней, в котором операции целочисленного деления применяются к максимальной степени числа p, не превосходящей $$x_{int}$$, коэффициент разложения находится как частное от деления, затем вычисления продолжаются для остатка от деления. Положим $$t_0 = x_{int}$$. Имеем:
где $$0 \le t_i < p^{n - i + 1}$$, для $$i = 0, 1, \dots, n; 0 \le b_j < p$$, для $$j = 0, 1, \dots, n$$.
В этом методе удобно использовать таблицы степеней.
Пример 6. Найдем троичное и двоичное представления числа 173.
81 < 173 < 243. Имеем: 173 = 2 * 81 + 11; 11 = 9 + 2. Поэтому $$173 = 2 * 3^4 + 0 * 3^3 + 1 * 3^2 + 0 * 3 + 2 = 20102_3$$;2. Преобразование дробной части числа. Дробная часть числа x, в соответствие с разложением (1), выглядит следующим образом:
Заметим, что если умножить $$x_{fract}$$ на p, то целая часть результата будет равна $$b_{n + 1}$$, а дробная часть будет иметь вид $$b_{n + 2}p ^{- 1} + b_{n + 3}p^{- 2} + \dots$$ Коэффициент $$b_{n + 2}$$ из разложения дробной части можно найти аналогичным образом, и т. д.
Положим $$r_0 = x_{fract}$$. Для первых m знаков после запятой имеем:
где $$b_{n + i} = [r_{i - 1}p], r_i = {r_{i - 1}p}$$, для i = 1, 2, ..., m. Очевидно, что $$0 \le r_j < 1$$, для j = 0, 1, ..., m.
Пример 7. Найдем троичное представление числа 0,7. Имеем:
0,7 * 3 = 2 + 0,1; 0,1 * 3 = 0 + 0,3; 0,3 * 3 = 0 + 0,9; 0,9 * 3 = 2 + 0,7; 0,7 * 3 = 2 + 0,1, и т. д.
Следовательно, $$0,7 = 0,(2002)_3$$.
Для вычислений удобно использовать таблицы. В табл. 1.1 приведены вспомогательные вычисления для преобразования трех чисел: 0,7 - в троичную систему счисления,$$\frac{2}{3}$$ - в восьмеричную и 0,9 - в двоичную. Каждому числу соответствует столбец таблицы, серым цветом в каждом столбце выделен период.
p=3 |
p=8 |
p=2 |
|---|---|---|
| 0,7 | $$\frac23$$ | 0,9 |
| 2,1 | $$5\frac13$$ | 1,8 |
| 0,3 | $$2 \frac23$$ | 1,6 |
| 0,9 | $$5\frac13$$ | 1,2 |
| 2,7 | 0,4 | |
| 2,1 | 0,8 | |
| 1,6 |
Таким образом, $$0,7 = 0,(2002)_3$$, $$\frac{2}{3}=0.(52)_8$$; $$0,9 = 0,1(1100)_2$$.
Пример 8. Найдем представление числа 35,85 в двоичной системе счисления. Имеем: $$35 = 32 + 2 + 1 = 2^5 + 2 + 1 = 100011_2$$. Для преобразования числа 0,85 будем последовательно удваивать дробные части результатов, начиная с этого числа: 1,7; 1,4; 0,8; 1,6; 1,2; 0,4; 0,8, ... Таким образом, $$0,85 = 0,11(0110)_2$$.
Следовательно,
$$35,85 = 100011,11(0110)_2.$$Пусть для неотрицательного действительного числа x верно разложение (1). Рассмотрим некоторые способы преобразования числа x из системы счисления с основанием p в десятичную систему счисления.
Первый способ заключается в непосредственном применении формулы (1) (пример 4). Для вычислений можно использовать таблицы, в которых записывается соответствие между коэффициентами и степенями p в указанном разложении.
Пример 9. Найдем десятичное представление числа $$1010,1011_2$$ с помощью таблицы 1.2.
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
| 8 | 4 | 2 | 1 | 1/2 | 1/4 | 1/8 | 1/16 |
Имеем: $$1010,1011_2=8+2+\frac{1}{2}+\frac{1}{8}+\frac{1}{16}=10+\frac{11}{16}=10,6875$$.
Второй способ называется схемой Горнера. Он обычно используется в компьютерных программах, так как позволяет существенно упростить вычисления. Заметим, что
$$x_{int}= b_0p^n + b_1p^{n - 1} + b_2p^{n - 2} + \dots + b_{n - 1}p + b_n = \\ = (((b_0p + b_1)p + b_2)p \dots + b_{n - 1})p + b_n.$$Утверждение 1. Положим
$$z_0 = b_0, z_j = z_{j - 1}p + b_j,$$для j = 1, 2, ..., n. Тогда $$x_{int} = z_n$$.
Доказательство. Для доказательства применим метод математической индукции. Используем индукцию по n.
Рассмотрим случай n = 1. Тогда $$z_1 = z_0p + b_1 = b_0p + b_1 = x_{int}$$. Следовательно, при n = 1 утверждение верно.
Предположим, что утверждение верно для $$n = k$$, т. е. что верно следующее соотношение:
$$x_{int}= b_0p^k + b_1p^{k - 1} + \dots + b_{k - 1}p + b_k = ((b_0p + b_1)p + \dots + b_{k - 1})p + b_k = z_k.$$Пусть теперь n = k + 1. Тогда, по предположению индукции,
Следовательно, утверждение верно для $$n = 1, 2, \dots \Box$$
Пример 10. Найдем десятичное представление числа $$12021_3$$. Имеем: $$12021_3 = (((1 * 3 + 2) * 3 + 0) * 3 + 2) * 3 + 1 = 142$$ ( табл. 1.3).
| $$b_j$$ | 1 | 2 | 0 | 2 | 1 |
| $$z_j$$ | 1 | 5 | 15 | 47 | 142 |
Если дробная часть числа x содержит k знаков после запятой, то для нее выполняется аналогичное соотношение:
Представление дробной части можно кратко записать в виде
$$x_{fract} = p^{ - k} * b_{n + 1}b_{n + 2} \dots b_{n + k p}.$$Пример 11. Используя схему Горнера, найдем десятичное представление чисел $$0,11022_3$$ и $$101,011_2$$. Имеем:
$$0,11022_3 = 3^{-5}((((1 * 3 + 1) * 3 + 0) * 3 + 2) * 3 + 2) =\frac{116}{243};\\ 101,011_2 = (1 * 2 + 0) * 2 + 1 + 2^{- 3}((0 * 2 + 1) * 2 + 1) = 5 +\frac{3}{8} = 5,375.$$Результаты вспомогательных вычислений для числа $$101,011_2$$ приведены в табл. 1.4.
| $$b_j$$ | 1 | 0 | 1 | 0 | 1 | 1 |
| $$z_j$$ | 1 | 2 | 5 | 0 | 1 | 3 |
Пусть теперь дробная часть числа обладает периодом длины s и выглядит следующим образом:
где s > 0 и $$0 \le с_i < p$$, для i = 1, ..., k, k + 1, ..., k + s. Обозначим через a и b целые десятичные числа, представление которых в системе счисления с основанием p имеет вид:
Утверждение 2. Является верным равенство:
$$0,c_1 \dots c_k(c_{k+1}\dots c_{k+s})_p=\frac{a(p^s-1)+b}{p^k(p^s-1)}$$Доказательство. Для доказательства используем разложение (1) и формулу суммы бесконечно убывающей геометрической прогрессии. Имеем:
$$0,c_1\dots c_k(c_{k+1}\dots c_{k+s})_p=\frac{c_1}{p}+\dots+\frac{c_k}{p^k}+\frac{c_{k+1}}{p^{k+1}}+\dots+\frac{c_{k+s}}{p^{k+s}}+\frac{c_{k+1}}{p^{k+s+1}}+\ dots+\frac{c_{k+s}}{p^{k+2s}}+\dots=\\ \frac{c_1}{p}+\dots+\frac{c_k}{p^k}+\frac{1}{p^k}*\left( \frac{c_{k+1}}{p}+\ dots+\frac{c_{k+s}}{p^s}\right) \left(1+\frac{1}{p^s}+\frac{1}{p^{2s}}+\dots \right)=\\ \frac{c_1p^{k-1}+\dots+c_k}{p^k}+\frac{1}{p^k}*\frac{c_{k+1}p^{s-1}+\dots+c_{k+s}}{p^s}*\frac{p^s}{p^s-1}=\\ \frac{(c_1p^{k-1}+\dots+c_k)(p^s-1)+c_{k+1}p^{s-1}+\dots+c_{k+s}}{p^k(p^s-1)}=\frac{a(p^s-1)+b}{p^k(p^s-1)}$$Пример 12. Используя формулу (4), представим число в виде рациональной дроби:
s = 1, k = 0 и a = 0);Операции сложения, вычитания, умножения и деления в системе счисления с основанием p производятся аналогично тому, как они выполняются в десятичной системе счисления.
Заметим, что $$p = 10_p$$, $$p + 1 = 11_p$$ для любого основания p. Соответственно, предшествующим для числа $$10_p$$ является число p - 1, а следующим за ним - число $$11_p$$. Для числа $$100_p$$ предшествующим является число $$p^2 - 1 = (p - 1)p + p - 1 = (p - 1)(p - 1)_p$$, а последующим - число $$101_p$$.
Пример 13. Найдем сумму, разность, произведение и частное, а также результаты целочисленного деления для чисел $$1120201_3$$ и $$22_3$$ в троичной системе счисления:
Таким образом,
$$ 1120201_3 + 22_3 = 1121000_3; 1120201_3 - 22_3 = 1120102_3;\\ 1120201_3 * 22_3 = 110122122_3; 1120201_3 22_3 = 12100,0(10)_3;\\ 1120201_3 \text{div} 22_3 = 12100_3, 1120201_3 \mod 22_3 = 1_3. $$Пример 14. Выполним операции сложения, вычитания, умножения и целочисленного деления в 16-ричной системе счисления для чисел $$c1e_{16}$$ и $$b2_{16}$$:
c1e + b2, начиная с младшего разряда. Имеем: e + 2 = 10, 1 + 1 + b = d. Поэтому c1e16 + b216 = cd016.c1e - b2. Имеем: e - 2 = c, 11 - b = 6, c - 1 = b. Следовательно, c1e16 - b216 = b6c16.c1e * b2. Имеем: e * 2 = 1c, 1 * 2 + 1 = 3, с * 2 = 18. Поэтому c1e * 2 = 183c. Аналогично, e * b = 9a, 1 * b + 9 = 14, c * b + 1 = 85. Следовательно, c1e * b = 854a. Таким образом, c1e16 * b216 = 183c16 + 854a016 = 86cdc16.c1e на b2. Имеем: c1 = 1 * b2 + f, fe = 1 * b2 + 4c. Следовательно, c1e = 11 * b2 + 4c, так что c1e16 div b216 = 1116; c1e16 mod b216 = 4c16.Замечание. Из утверждения 2 следует, что при $$s > 0$$
$$0,c_1\dotsc_k(c_{k+1}\dotsc_{k+s})_p=p^{-k}\left(c_1\dotsc_{kp}+\frac{c_{k+1}/dots_{k+sp}}{\frac{(p-1)\dots(p-1)}{s}p}\right)$$Пример 15. Найдем представление числа $$212,1_3$$ в системе счисления с основанием 5.
Имеем: $$5 = 12_3$$. В троичной системе счисления
Таким образом, $$212_3 = 11_3 * 12_3 + 10_3$$. Но $$11_3 = 4_5$$, а $$10_3 = 3_5$$. Поэтому $$212_3 = 43_5$$.
Для дробной части числа в троичной системе счисления имеем:
Таким образом, $$0,1_3 * 12_3 = 1,2_3; 0,2_3 * 12_3 = 10,1_3; 0,1_3 * 12_3 = 1,2_3$$, и т. д. Следовательно, $$0,1_3 = 0,(13)_5$$, так как $$1_3 = 1_5$$, а $$10_3 = 3_5$$. В результате получается, что $$212,1_3 = 43,(13)_5$$.
Выполним обратное преобразование: найдем троичное представление числа $$43,(13)_5$$. В пятеричной системе счисления
Таким образом, $$43_5 = 12_5 * 3_5 + 2_5, 12_5 = 2_5 * 3_5 + 1_5$$.
Поэтому $$43_5 = 212_3$$.
Далее, $$0,(13)_5=\frac{13_5}{44_5}=\frac{13_5}{13_5*3_5}=\frac{1_5}{3_5}=\frac{1}{3}=0,1_3$$.
Следовательно, $$43,(13)_5 = 212,1_3$$.
Рассмотрим методы преобразования представления числа между системами счисления с основаниями p и $$p^k$$ с помощью таблиц. Таблица содержит упорядоченный набор слов длины $$k$$ в алфавите из p букв. Эти буквы соответствуют цифрам в системе счисления с основанием p, а слова - цифрам в системе счисления с основанием $$p^k$$.
Алфавит - конечное множество, элементы которого называются буквами. Конечная последовательность букв называется словом. Множество всех слов над алфавитом A обозначается A*. Язык - это подмножество множества слов. Число букв в слове называется длиной слова. Пустое слово обозначается $$\Lambda$$, длина пустого слова равна 0.
Рассмотрим алфавит, состоящий из двоичных цифр: A = {0, 1}. Один двоичный разряд представляет один бит. Если разрядов k, то с их помощью можно записать $$2^k$$ различных последовательностей 0 и 1 - слов над алфавитом A. Слова над алфавитом /{0, 1/} называются двоичными словами.
Порядок следования слов в словаре называется лексикографическим. Например, в таком порядке в словаре размещаются слова а, абажур, абак, аббат, аббатство, аббревиатура, аберрация, абзац.
Лексикографический порядок определяется следующим образом. Пустое слово меньше непустого. Если первая буква первого слова меньше первой буквы второго слова, то первое слово располагается раньше второго. Если первые буквы слов совпадают, то сравнение производится по вторым буквам, и т. д. Например, в алфавите /{0, 1/} буква 0 меньше, чем буква 1, поэтому слова, начинающиеся на 0, в словаре двоичных слов должны располагаться раньше, чем слова, которые начинаются на 1.
В общем случае, пусть p - целое число, такое что p > 1, и алфавит A содержит p букв со значениями от 0 до p - 1:
Будем считать, что $$a_0 < a_1 < \dots< a_{p - 1}$$. Всего над алфавитом A существует $$p^k$$ слов длины k, так как на каждой из k позиций в слове может стоять любая из p букв. Поэтому набор этих слов соответствует цифрам в системе счисления с основанием $$p^k$$.
Замечание. Пусть $$v_1, v_2, \dots, v_s$$, где $$s = p^n$$, - упорядоченное множество слов длины n над алфавитом A. Тогда упорядоченное множество слов длины n + 1 имеет вид:
Пусть p = 2 и A = /{0, 1/}. Имеем:
- упорядоченный набор слов длины 0;
0, 1 - упорядоченный набор слов длины 1;
00, 01, 10, 11 - упорядоченный набор слов длины 2, и т. д.
Слова длины 3 и 4 называют триадами и тетрадами, соответственно.
Ниже приведены таблицы двоичных слов длины k, для k = 2, 3 и 4 ( рис. 1.1), и соответствующих им цифр в системе счисления с основанием $$2^k$$, которые представляют эти слова. В заголовке каждого столбца указывается основание системы счисления, которой принадлежат слова, содержащиеся в столбце.
(рис 1.1) Таблицы триад и тетрад
Таблицы используются для быстрого преобразования представления числа между двоичной системой счисления и системами счисления с основаниями 4, 8 и 16.
Рассмотрим представление чисел в системах счисления с основаниями p и $$p^k$$, для k > 1.
Положим $$s = p^k$$. Для целого неотрицательного числа x имеем:
где $$0 \le d_i < p^k$$, для i = 0, 1, ..., n. Но $$d_i < p^k$$, поэтому в системе счисления с основанием p для цифр $$d_i$$ выполняются следующие разложения:
где $$0 \le b_{ij} < p$$, для j = 0, 1, ..., k, i = 0, 1, ..., n. Соответственно, в системе счисления с основанием p число $$d_i$$ имеет представление $$d_i = b_{i0}b_{i1} \dots b_{ik p}$$.
Подставим указанные выше разложения для чисел $$d_i$$ в разложение для числа x, в результате будем иметь:
$$ x=b_{00}p^{kn + k - 1} + b_{01}p^{kn + k - 2} + \dots + b_{0k}p^{kn}+ b_{10}p^{kn - 1}+ b_{11}p^{kn - 2}+ \dots + b_{1k}p^{kn - k} +\\ \dots + b_{n0}p^{k - 1} + b_{n1}p^{k - 2}+ \dots + b_{nk}$$Поэтому число x в системе счисления с основанием p имеет следующее представление:
$$x = b_{00}b_{01} \dots b_{0k}b_{10}b_{11} \dots b_{1k} \dots b_{n0}b_{n1} \dots b_{nk p}.$$Таким образом, если число в системе счисления с основанием $$p^k$$ имеет представление $$d_{0d1} \dots d_n$$, то для того, чтобы найти его представление в системе счисления с основанием p, достаточно каждую из цифр $$d_i$$, для i = 0, 1, ..., n, заменить ее представлением в системе счисления с основанием p с помощью слова длины k.
Пример 16. С помощью таблиц найдем представление чисел $$301_4$$, $$1073_8$$ и $$2ae8_{16}$$ в двоичной системе счисления. Имеем:
$$301_4 = 11 00 01 = 110001_2;\\ 1073_8 = 001 000 111 011 = 1000111011_2;\\ 2ae8_{16} = 0010 1010 1110 1000 = 10101011101000_2.$$Пример 17. Представление чисел $$7125_9$$ и $$2020_9$$ в троичной системе счисления можно найти следующим образом:
$$7125_9 = 21 01 02 12 = 21010212_3;\\ 2020_9 = 02 00 02 00 = 2000200_3.$$Проведенные выше преобразования с помощью знака суммирования $$\sum$$ можно записать в виде:
$$x=\sum_{i=0}^nd_is^{n-i}=\sum_{i=0}^nd_ip^{k(n-i)}= \sum_{i=0}^n \Bigl(\sum_{j=0}^{k-1}b_{ij}p^{k-1-j}\Bigr)p^{k(n-i)}=\\ =\sum_{i=0}^n \sum_{j=0}^{k-1}b_{ij}p^{k(n-i)+k-1-j}=\sum_{i=0}^n \sum_{j=0}^{k-1}b_{ij}p^{kn+k-1-(ki+j)}=\\ =\sum_{q=0}^{kn+k-1}b_{q \:\text{div}\: k,q \mod k}p^{kn+k-1-q}=\sum_{q=0}^{kn+k-1}c_qp^{kn+k-1-q} $$В предпоследнем равенстве выполнен переход от двойного суммирования к суммированию по одному индексу с помощью замены q = ki + j. Индексы i и j меняются от 0 до n и от 0 до k - 1, соответственно, поэтому индекс q последовательно принимает все значения от 0 до kn + k - 1. Далее, учитывая, что $$0 \le j < k$$, получим: i = q div k, j = q mod k. В последнем равенстве приведенного выше выражения выполнен переход от двойных индексов к одинарным: $$c_q = b_{q \:\text{div}\: k, q \mod k}$$. Итак, имеем:
Пусть теперь в системе счисления с основанием p для целого неотрицательного числа x выполняется разложение
где m = k(n + 1) - 1, $$k > 1, n \ge 0; 0 \le c_j < p$$, для j = 0, 1, ..., m. Число слагаемых в правой части равенства кратно k. Разобьем их последовательно на группы, содержащие по k элементов (очевидно, что таких групп будет n + 1), в результате будем иметь:
Положим
$$d_0 = c_0p^{k - 1} + c_1p^{k - 2} + \dots + c_{k - 1},\\ d_1 = c_kp^{k - 1} + c_{k + 1}p^{k - 2} + \dots + c_{2k - 1},\\ \dots d_n = c_{m - k + 1}p^{k - 1} + c_{m - k + 2}p^{k - 2} + \dots + c_m.$$Ясно, что $$0 \leqslant d_j < p^k$$, для j = 0, 1, ..., n. Кроме того, m = kn + k - 1. Поэтому представление числа x в системе счисления с основанием $$p^k$$ имеет вид: $$x = d_0p^{kn} + d_1(p^k)^{n - 1} + \dots + d_n$$
Таким образом, при преобразовании представления числа из системы счисления с основанием p в систему счисления с основанием $$p^k$$, достаточно сгруппировать буквы исходного слова в слова длины k, при необходимости добавив нули в начале слова, а затем заменить эти слова
Пример 18. Для числа 73 по таблицам имеем:
$$ 73 = 1001001_2 = 01 00 10 01 = 1021_4 = 001 001 001 = 111_8 = 0100 1001 = 49_{16}.$$Преобразование дробной части числа, если она имеет конечное число знаков после запятой, выполняется аналогичным образом, так как
$$0,b_{n + 1}b_{n + 2} \dots b_{n + k p}= p^{ - k} * b_{n + 1}b_{n + 2} \dots b_{n + k p} =p{ - k - 1} * b_{n + 1}b_{n + 2} \dots b_{n + k}0_p = \dots$$Очевидно, что для дробной части при преобразовании представления числа из системы счисления с основанием p в систему счисления с основанием $$p^k$$ необходимое число нулей добавляется справа.
Пример 19. С помощью таблиц найдем двоичное представление чисел $$0,032_4$$, $$0,704_8$$ и $$0,9e0a_{16}$$. Имеем:
$$0,032_4 = 0,00 11 10 = 0,00111_2;\\ 0,702_8 = 0,111 000 010 = 0,11100001_2;\\ 0,9e0a_{16} = 0,1001 1110 0000 1010 = 0,100111100000101_2.$$Пример 20. Найдем представление чисел $$0,011_2$$ и $$10101,10011_2$$ в системах счисления с основаниями 4, 8 и 16 с помощью таблиц:
Ниже приведена общая таблица для преобразования чисел между системами счисления с основаниями 3 и 9, а также 4 и 16 ( Таблица ).
(рис 1.2) Соответствие между системами счисления с основаниями 3 и 9, 4 и 16
Пример 21. 1) Найдем для чисел $$2805_09$$ и $$1f58_{16}$$ их троичное и четверичное представления, соответственно. По таблице h имеем:
$$2805_9 = 02 22 00 12 = 2220012_3;\\ 1f58_{16} = 01 33 11 20 = 1331120_4.$$2) Представление чисел $$2120121_3$$ и $$10032_4$$ в системах счисления с основаниями 9 и 16, соответственно, по рис 1.2 находится следующим образом:
$$2120121_3 = 02 12 01 21 = 2517_9;\\ 10032_4 = 01 00 32 = 10e_{16}.$$В системах счисления с основаниями от 11 до 36 включительно цифрами являются десятичные цифры и буквы латинского алфавита. Эти цифры приведены в табл.. Ячейка с индексами i и j содержит цифру, значение которой в десятичной системе равно 10i + j.
(рис 1.3) Обозначения цифр в системах счисления...
Пример 22. 1) Найдем шестеричное представление числа $$9o4zaaaaaaa_{36}$$. Имеем: $$9_{36} = 9_{10} = 13_6, o_{36} = 24_{10} = 40_6, z_{36} = 35_{10} = 55_6$$. Поэтому
$$9o4z_{36} = 13 40 04 55 = 13400455_6.$$2) Найдем представление числа $$142124403_5$$ в системе счисления с основанием 25. Имеем: $$42_5 = 22_{10}; 12_5 = 7_{10}; 44_5 = 24_{10}.$$
Следовательно,
$$142124403_5 = 01 42 12 44 03 = 1m7o3_{25}.$$В системах счисления с основанием 37 и более в качестве цифр часто используются десятичные числа. В этом случае цифры состоят из нескольких знаков. Мы в записи чисел будем просто разделять такие цифры пробелами (как в системе Wolfram|Alpha - см. гл. 7).
Пример 23. Вычислим 60-ричное представление числа 43000. Имеем:
43000 = 716 * 60 + 40; 716 = 11 * 60 + 56.
Таким образом, $$43000 = 11 56 40_{60}$$. Отсюда, в частности, следует, что 43000 секунд составляет 11 часов, 56 минут и 40 секунд.
В вавилонской системе счисления c основанием 60 для записи цифр, от 1 до 59, использовались два знака: стоячий клин для обозначения 1 и лежачий для обозначения 10 ( рис. 1.1 (a)). Разряды отделялись пробелами, иногда для разделения цифр использовались специальные символы, по причине отсутствия нуля. В ней число 43000 могло быть записано так, как показано на рис. 1.4 (b).
(рис 1.4) Рис. 1.4. (a) Клинописное обозначение чисел 1 (слева) и 10 (справа); (b) представление числа 43000
Пример 24. Найдем семеричное представление числа $$3 42,0 24_{49}$$. Имеем: $$3_{49} = 03_7, 42_{49} = 60_{7}, 24_{49} = 33_7$$. Поэтому
$$3 42,0 24_{49} = 03 60,00 33 = 360,0033_7.$$Пример 25. Найдем представление числа $$2310,1022_4$$ в системе счисления с основанием 64:
$$2310,1022_4 = 002 310,102 200 = 2 52,18 32_{64},$$так как $$310_4 = 3 * 16 + 1 * 4 + 0 = 52, 102_4 = 16 + 2 = 18, 200_4 = 2 * 16 = 32$$.
Запишите число 100 в системе счисления с основанием
a) 2;
b) 3;
c) 12;
d) 20;
e) 60.
Найдите двоичное представление числа
a) 1,1;
b) 7,7;
c) 14,14;
d) 33,3.
Представьте число 22,2 в системе счисления с основанием
a) 4;
b) 8;
c) 12;
d) 16.
p, где $$p>3$$, число $$1331_p$$ является кубом числа $$11_p$$.Найдите десятичное представление числа
a) $$a1,1a_{16}$$;
b) $$107,07_8$$;
c) $$124,104_5$$;
d) $$313,03_4$$.
Не используя (4), представьте в виде рациональной дроби число
a) 0,22(321);
b) $$0,22(321)_4$$
Представьте в виде рациональной дроби число
a) 0,(023);
b) 0,0(7);
c) $$0,(14)_5$$;
d) $$0,0110(110101)_2$$.
Постройте 1) таблицу сложения; 2) таблицу умножения в системе счисления с основанием
a) 2;
b) 3;
c) 4;
d) 8;
e) 16.
Выполните операции сложения, вычитания, умножения и деления в системе счисления с основанием p для чисел
a) $$10001_2$$ и $$110_2$$, p = 2;
b) $$1a0f_{16}$$ и $$2c_{16}$$, p = 16.
Выполните действия в троичной системе счисления:
a) $$201_3 + 12002_3$$;
b) $$2020_3 - 122_3$$;
c)$$112\frac23$$;
d) $$2012_3 21_3$$.
Выполните действия в системе счисления с указанным основанием:
a) $$6_{12} + 29_{12}$$;
b) $$99_{20} - 33_{20}$$;
c) $$5_{12} * 12_{12}$$;
d) $$20_{20} * 15_{20}$$.
Найдите представление числа x в системе счисления с основанием p, если
a) $$x = 4,5_7$$, p = 3;
b) $$x = 432,12_5$$, p = 7.
Найдите представление числа $$10010010110,0100010_2$$ в системе счисления с основанием
a) 4;
b) 8;
c) 16;
d) 32.
Найдите представление в двоичной системе счисления числа
a) $$201,2301_4$$;
b) $$603,72_8$$;
c) $$f0cd,a09_{16}$$.
Найдите представление в двоичной системе счисления числа
a) $$3o7,b_{32}$$;
b) $$2 11,5_{100}$$.
Постройте общую таблицу
a) для преобразования чисел между системами счисления с основаниями 5 и 25, а также 6 и 36;
a) для преобразования чисел между системами счисления с основаниями от 2 до 6 включительно и системами счисления с основаниями, равными квадратам этих чисел, т. е. с основаниями 4, 9, 16, 25 и 36, соответственно;
Найдите представление числа x в системе счисления с основанием p, если
a) $$x = 22011,01102_3$$, p = 9;
b) $$x = 678,345_9$$, p = 3;
c) $$x = 221,01331_4$$, p = 16;
d) $$x = 7ea8,3d_{16}$$, p = 4;
e) $$x = 40332,204_5$$, p = 25;
f) $$x = 2efd,o8m_{25}$$, p = 5;
g) $$x = 5544332,211_6$$, p = 36;
h) $$x = zzx7,5ni7_{36}$$, p = 6.
Постройте таблицу для преобразования чисел между системами счисления
a) 4 и 64;
b) 8 и 64;
c) 7 и 49.
Найдите представление числа x в системе счисления с основанием p, если
a) $$x = 794,802$$, p = 100;
b) $$x = 86 5,0 29_{100}$$, p = 10;
c) $$x = 333,201_4$$, p = 64;
d) $$x = 22 35,12 5_{64}$$, p = 4;
e) $$x = 543,345_8$$, p = 64;
f) $$x = 2 38,11 25_{64}$$, p = 8;
g) $$x = 2387,145_7$$, p = 49;
h) $$x = 2 48,8 23_{49}$$, p = 7;
i) $$x = 11001111,011_2$$, p = 64;
j) $$x =14 3,34 5_{64}$$, p = 2;
k) $$x = 64000,5$$, p = 60;
l) $$x = 22 35,12 5_{60}$$, p = 10.
В конструкции вычислительных устройств ключевую роль играют системы счисления. Первые механические счетные машины были разработаны на основе десятичной системы счисления. Применение вместо нее двоичной системы позволило существенно уменьшить размеры механических счетных устройств. В истории известны случаи использования для вычислений различных систем счисления, например, шестидесятеричной древневавилонской, смешанной римской, непозиционной десятичной древнеегипетской и др.
В современных компьютерах для представления данных и вычислений используется двоичная система счисления. Тем не менее, актуальным является изучение способов применения и других систем счисления.
В настоящей главе рассматриваются традиционные позиционные системы счисления с целым положительным основанием, методы преобразования представления действительного числа между десятичной и другими системами счисления, а также между системой счисления с основанием p и системой счисления с основанием, являющимся степенью p. Обсуждаются арифметические операции в системах счисления.
Система счисления - символический метод представления чисел с помощью письменных знаков. Эти знаки, или группы знаков, называются цифрами. Если число представляется в виде последовательности цифр, и значение цифры зависит от ее позиции, или разряда в этой последовательности, то система счисления называется позиционной. Позиционная система счисления называется p-ичной, если для представления чисел в ней используется p цифр со значениями от 0 до p - 1 включительно, а значения разрядов определяются степенями числа p. Число p называется основанием системы счисления.
Пусть p - целое число, p> 1. Неотрицательное действительное число x может быть разложено по степеням числа p следующим образом:
где $$b_i$$ - целые числа, $$0 \le b_i < p$$, для i = 0, 1, 2, ...; числа $$b_i$$ называются коэффициентами при степенях числа p. Запись числа x в виде
где вместо чисел $$b_i$$ могут использоваться заменяющие их знаки, называется представлением числа x в p-ичной системе счисления, или p-ичным представлением, а также p-ичным числом или представлением в p-ичном виде. Если p = 10, то символ p обычно опускается. Знаки, которые используются для обозначения чисел $$b_i$$, называются цифрами.
В дальнейшем в p-ичном представлении числа, приведенном выше, будут использоваться как сами числа $$b_i$$, так и обозначающие их цифры. Различие обозначений будет ясно из контекста.
Пример 1. В двоичной системе счисления для представления чисел используются цифры 0 и 1, в троичной - 0, 1 и 2, в шестнадцатеричной - цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e и f. Значения последних шести цифр соответственно равны 10, 11, 12, 13, 14 и 15.
Если дробная часть числа имеет период, то его заключают в круглые скобки, в виде
$$0,22321321321... = 0,22(321)$$Пример 2. Число 7,8 можно представить следующим образом:
$$7,8 = 111,(1100)_2 = 21,(2101)_3 = 13,(30)_4 = 7,(6314)_8 = 7,(c)_{16}$$Пример 3. Найдем представление числа 9,625 в двоичной системе счисления. Имеем: 9,625 = 9 + 0,625 = 8 + 1 + 0,5 + 0,125. Поэтому разложение этого числа по степеням 2 имеет вид:
Следовательно, $$9,625 = 1001,101_2$$.
Пример 4. Найдем десятичное представление числа $$201,102_3$$:
$$2*3^2+0*3+1+1*3^{-1}+0*3^{-2}+2*3^{-3}=19\frac{11}{27}=19,(407)$$Пусть действительное число x имеет разложение (1). Обозначим через xint - целую часть числа x, а через xfract - дробную:
xint = [x], xfract = {x}
так что x = xint + xfract. Тогда в системе счисления с основанием p представление целой и дробной части числа x соответственно имеет вид:
Пусть a и b - целые числа и b не равно 0. Обозначим через a div b - целую часть частного, а через a mod b - остаток от деления a на b.
1. Преобразование целой части числа. Из разложения (1) следует, что целая часть числа x выглядит следующим образом:
Поэтому $$b_n = x_{int} \mod p$$. Далее, $$x_{int} \;\text{div}\; p = b_0p^{n - 1} + b_1p^{n - 2} + ... + b_{n - 1}$$, так что аналогичным образом можно найти коэффициент $$b_{n - 1}$$, и т. д.
Положим $$y_0 = x_{int}$$. Имеем:
$$y_0 = y_1p + b_n,\\ y_1 = y_2p + b_{n - 1},\\ \dots\\ y_{n - 1}= y_np + b_1, \\ y_n = b_0, $$где $$y_j = y_{j - 1} \;\text{div}\; p$$, для $$j = 1, 2, \dots, n; b_i = y_{n - i} \mod p$$, для $$i = 0, 1, \dots, n$$. Данный способ вычисления коэффициентов $$b_i$$ соответствует методу деления "уголком":
Пример 5. Представление числа 73 в троичной системе счисления можно найти следующим образом (ср. с делением "уголком"):
73 = 24 * 3 + 1; 24 = 8 * 3 + 0; 8 = 2 * 3 + 2.
Поэтому $$73 = 2201_3$$.
Другим способом вычисления представления целого числа $$x_{int}$$ в системе счисления с основанием p является метод выделения полных степеней, в котором операции целочисленного деления применяются к максимальной степени числа p, не превосходящей $$x_{int}$$, коэффициент разложения находится как частное от деления, затем вычисления продолжаются для остатка от деления. Положим $$t_0 = x_{int}$$. Имеем:
где $$0 \le t_i < p^{n - i + 1}$$, для $$i = 0, 1, \dots, n; 0 \le b_j < p$$, для $$j = 0, 1, \dots, n$$.
В этом методе удобно использовать таблицы степеней.
Пример 6. Найдем троичное и двоичное представления числа 173.
81 < 173 < 243. Имеем: 173 = 2 * 81 + 11; 11 = 9 + 2. Поэтому $$173 = 2 * 3^4 + 0 * 3^3 + 1 * 3^2 + 0 * 3 + 2 = 20102_3$$;2. Преобразование дробной части числа. Дробная часть числа x, в соответствие с разложением (1), выглядит следующим образом:
Заметим, что если умножить $$x_{fract}$$ на p, то целая часть результата будет равна $$b_{n + 1}$$, а дробная часть будет иметь вид $$b_{n + 2}p ^{- 1} + b_{n + 3}p^{- 2} + \dots$$ Коэффициент $$b_{n + 2}$$ из разложения дробной части можно найти аналогичным образом, и т. д.
Положим $$r_0 = x_{fract}$$. Для первых m знаков после запятой имеем:
где $$b_{n + i} = [r_{i - 1}p], r_i = {r_{i - 1}p}$$, для i = 1, 2, ..., m. Очевидно, что $$0 \le r_j < 1$$, для j = 0, 1, ..., m.
Пример 7. Найдем троичное представление числа 0,7. Имеем:
0,7 * 3 = 2 + 0,1; 0,1 * 3 = 0 + 0,3; 0,3 * 3 = 0 + 0,9; 0,9 * 3 = 2 + 0,7; 0,7 * 3 = 2 + 0,1, и т. д.
Следовательно, $$0,7 = 0,(2002)_3$$.
Для вычислений удобно использовать таблицы. В табл. 1.1 приведены вспомогательные вычисления для преобразования трех чисел: 0,7 - в троичную систему счисления,$$\frac{2}{3}$$ - в восьмеричную и 0,9 - в двоичную. Каждому числу соответствует столбец таблицы, серым цветом в каждом столбце выделен период.
p=3 |
p=8 |
p=2 |
|---|---|---|
| 0,7 | $$\frac23$$ | 0,9 |
| 2,1 | $$5\frac13$$ | 1,8 |
| 0,3 | $$2 \frac23$$ | 1,6 |
| 0,9 | $$5\frac13$$ | 1,2 |
| 2,7 | 0,4 | |
| 2,1 | 0,8 | |
| 1,6 |
Таким образом, $$0,7 = 0,(2002)_3$$, $$\frac{2}{3}=0.(52)_8$$; $$0,9 = 0,1(1100)_2$$.
Пример 8. Найдем представление числа 35,85 в двоичной системе счисления. Имеем: $$35 = 32 + 2 + 1 = 2^5 + 2 + 1 = 100011_2$$. Для преобразования числа 0,85 будем последовательно удваивать дробные части результатов, начиная с этого числа: 1,7; 1,4; 0,8; 1,6; 1,2; 0,4; 0,8, ... Таким образом, $$0,85 = 0,11(0110)_2$$.
Следовательно,
$$35,85 = 100011,11(0110)_2.$$Пусть для неотрицательного действительного числа x верно разложение (1). Рассмотрим некоторые способы преобразования числа x из системы счисления с основанием p в десятичную систему счисления.
Первый способ заключается в непосредственном применении формулы (1) (пример 4). Для вычислений можно использовать таблицы, в которых записывается соответствие между коэффициентами и степенями p в указанном разложении.
Пример 9. Найдем десятичное представление числа $$1010,1011_2$$ с помощью таблицы 1.2.
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
| 8 | 4 | 2 | 1 | 1/2 | 1/4 | 1/8 | 1/16 |
Имеем: $$1010,1011_2=8+2+\frac{1}{2}+\frac{1}{8}+\frac{1}{16}=10+\frac{11}{16}=10,6875$$.
Второй способ называется схемой Горнера. Он обычно используется в компьютерных программах, так как позволяет существенно упростить вычисления. Заметим, что
$$x_{int}= b_0p^n + b_1p^{n - 1} + b_2p^{n - 2} + \dots + b_{n - 1}p + b_n = \\ = (((b_0p + b_1)p + b_2)p \dots + b_{n - 1})p + b_n.$$Утверждение 1. Положим
$$z_0 = b_0, z_j = z_{j - 1}p + b_j,$$для j = 1, 2, ..., n. Тогда $$x_{int} = z_n$$.
Доказательство. Для доказательства применим метод математической индукции. Используем индукцию по n.
Рассмотрим случай n = 1. Тогда $$z_1 = z_0p + b_1 = b_0p + b_1 = x_{int}$$. Следовательно, при n = 1 утверждение верно.
Предположим, что утверждение верно для $$n = k$$, т. е. что верно следующее соотношение:
$$x_{int}= b_0p^k + b_1p^{k - 1} + \dots + b_{k - 1}p + b_k = ((b_0p + b_1)p + \dots + b_{k - 1})p + b_k = z_k.$$Пусть теперь n = k + 1. Тогда, по предположению индукции,
Следовательно, утверждение верно для $$n = 1, 2, \dots \Box$$
Пример 10. Найдем десятичное представление числа $$12021_3$$. Имеем: $$12021_3 = (((1 * 3 + 2) * 3 + 0) * 3 + 2) * 3 + 1 = 142$$ ( табл. 1.3).
| $$b_j$$ | 1 | 2 | 0 | 2 | 1 |
| $$z_j$$ | 1 | 5 | 15 | 47 | 142 |
Если дробная часть числа x содержит k знаков после запятой, то для нее выполняется аналогичное соотношение:
Представление дробной части можно кратко записать в виде
$$x_{fract} = p^{ - k} * b_{n + 1}b_{n + 2} \dots b_{n + k p}.$$Пример 11. Используя схему Горнера, найдем десятичное представление чисел $$0,11022_3$$ и $$101,011_2$$. Имеем:
$$0,11022_3 = 3^{-5}((((1 * 3 + 1) * 3 + 0) * 3 + 2) * 3 + 2) =\frac{116}{243};\\ 101,011_2 = (1 * 2 + 0) * 2 + 1 + 2^{- 3}((0 * 2 + 1) * 2 + 1) = 5 +\frac{3}{8} = 5,375.$$Результаты вспомогательных вычислений для числа $$101,011_2$$ приведены в табл. 1.4.
| $$b_j$$ | 1 | 0 | 1 | 0 | 1 | 1 |
| $$z_j$$ | 1 | 2 | 5 | 0 | 1 | 3 |
Пусть теперь дробная часть числа обладает периодом длины s и выглядит следующим образом:
где s > 0 и $$0 \le с_i < p$$, для i = 1, ..., k, k + 1, ..., k + s. Обозначим через a и b целые десятичные числа, представление которых в системе счисления с основанием p имеет вид:
Утверждение 2. Является верным равенство:
$$0,c_1 \dots c_k(c_{k+1}\dots c_{k+s})_p=\frac{a(p^s-1)+b}{p^k(p^s-1)}$$Доказательство. Для доказательства используем разложение (1) и формулу суммы бесконечно убывающей геометрической прогрессии. Имеем:
$$0,c_1\dots c_k(c_{k+1}\dots c_{k+s})_p=\frac{c_1}{p}+\dots+\frac{c_k}{p^k}+\frac{c_{k+1}}{p^{k+1}}+\dots+\frac{c_{k+s}}{p^{k+s}}+\frac{c_{k+1}}{p^{k+s+1}}+\ dots+\frac{c_{k+s}}{p^{k+2s}}+\dots=\\ \frac{c_1}{p}+\dots+\frac{c_k}{p^k}+\frac{1}{p^k}*\left( \frac{c_{k+1}}{p}+\ dots+\frac{c_{k+s}}{p^s}\right) \left(1+\frac{1}{p^s}+\frac{1}{p^{2s}}+\dots \right)=\\ \frac{c_1p^{k-1}+\dots+c_k}{p^k}+\frac{1}{p^k}*\frac{c_{k+1}p^{s-1}+\dots+c_{k+s}}{p^s}*\frac{p^s}{p^s-1}=\\ \frac{(c_1p^{k-1}+\dots+c_k)(p^s-1)+c_{k+1}p^{s-1}+\dots+c_{k+s}}{p^k(p^s-1)}=\frac{a(p^s-1)+b}{p^k(p^s-1)}$$Пример 12. Используя формулу (4), представим число в виде рациональной дроби:
s = 1, k = 0 и a = 0);Операции сложения, вычитания, умножения и деления в системе счисления с основанием p производятся аналогично тому, как они выполняются в десятичной системе счисления.
Заметим, что $$p = 10_p$$, $$p + 1 = 11_p$$ для любого основания p. Соответственно, предшествующим для числа $$10_p$$ является число p - 1, а следующим за ним - число $$11_p$$. Для числа $$100_p$$ предшествующим является число $$p^2 - 1 = (p - 1)p + p - 1 = (p - 1)(p - 1)_p$$, а последующим - число $$101_p$$.
Пример 13. Найдем сумму, разность, произведение и частное, а также результаты целочисленного деления для чисел $$1120201_3$$ и $$22_3$$ в троичной системе счисления:
Таким образом,
$$ 1120201_3 + 22_3 = 1121000_3; 1120201_3 - 22_3 = 1120102_3;\\ 1120201_3 * 22_3 = 110122122_3; 1120201_3 22_3 = 12100,0(10)_3;\\ 1120201_3 \text{div} 22_3 = 12100_3, 1120201_3 \mod 22_3 = 1_3. $$Пример 14. Выполним операции сложения, вычитания, умножения и целочисленного деления в 16-ричной системе счисления для чисел $$c1e_{16}$$ и $$b2_{16}$$:
c1e + b2, начиная с младшего разряда. Имеем: e + 2 = 10, 1 + 1 + b = d. Поэтому c1e16 + b216 = cd016.c1e - b2. Имеем: e - 2 = c, 11 - b = 6, c - 1 = b. Следовательно, c1e16 - b216 = b6c16.c1e * b2. Имеем: e * 2 = 1c, 1 * 2 + 1 = 3, с * 2 = 18. Поэтому c1e * 2 = 183c. Аналогично, e * b = 9a, 1 * b + 9 = 14, c * b + 1 = 85. Следовательно, c1e * b = 854a. Таким образом, c1e16 * b216 = 183c16 + 854a016 = 86cdc16.c1e на b2. Имеем: c1 = 1 * b2 + f, fe = 1 * b2 + 4c. Следовательно, c1e = 11 * b2 + 4c, так что c1e16 div b216 = 1116; c1e16 mod b216 = 4c16.Замечание. Из утверждения 2 следует, что при $$s > 0$$
$$0,c_1\dotsc_k(c_{k+1}\dotsc_{k+s})_p=p^{-k}\left(c_1\dotsc_{kp}+\frac{c_{k+1}/dots_{k+sp}}{\frac{(p-1)\dots(p-1)}{s}p}\right)$$Пример 15. Найдем представление числа $$212,1_3$$ в системе счисления с основанием 5.
Имеем: $$5 = 12_3$$. В троичной системе счисления
Таким образом, $$212_3 = 11_3 * 12_3 + 10_3$$. Но $$11_3 = 4_5$$, а $$10_3 = 3_5$$. Поэтому $$212_3 = 43_5$$.
Для дробной части числа в троичной системе счисления имеем:
Таким образом, $$0,1_3 * 12_3 = 1,2_3; 0,2_3 * 12_3 = 10,1_3; 0,1_3 * 12_3 = 1,2_3$$, и т. д. Следовательно, $$0,1_3 = 0,(13)_5$$, так как $$1_3 = 1_5$$, а $$10_3 = 3_5$$. В результате получается, что $$212,1_3 = 43,(13)_5$$.
Выполним обратное преобразование: найдем троичное представление числа $$43,(13)_5$$. В пятеричной системе счисления
Таким образом, $$43_5 = 12_5 * 3_5 + 2_5, 12_5 = 2_5 * 3_5 + 1_5$$.
Поэтому $$43_5 = 212_3$$.
Далее, $$0,(13)_5=\frac{13_5}{44_5}=\frac{13_5}{13_5*3_5}=\frac{1_5}{3_5}=\frac{1}{3}=0,1_3$$.
Следовательно, $$43,(13)_5 = 212,1_3$$.
Рассмотрим методы преобразования представления числа между системами счисления с основаниями p и $$p^k$$ с помощью таблиц. Таблица содержит упорядоченный набор слов длины $$k$$ в алфавите из p букв. Эти буквы соответствуют цифрам в системе счисления с основанием p, а слова - цифрам в системе счисления с основанием $$p^k$$.
Алфавит - конечное множество, элементы которого называются буквами. Конечная последовательность букв называется словом. Множество всех слов над алфавитом A обозначается A*. Язык - это подмножество множества слов. Число букв в слове называется длиной слова. Пустое слово обозначается $$\Lambda$$, длина пустого слова равна 0.
Рассмотрим алфавит, состоящий из двоичных цифр: A = {0, 1}. Один двоичный разряд представляет один бит. Если разрядов k, то с их помощью можно записать $$2^k$$ различных последовательностей 0 и 1 - слов над алфавитом A. Слова над алфавитом /{0, 1/} называются двоичными словами.
Порядок следования слов в словаре называется лексикографическим. Например, в таком порядке в словаре размещаются слова а, абажур, абак, аббат, аббатство, аббревиатура, аберрация, абзац.
Лексикографический порядок определяется следующим образом. Пустое слово меньше непустого. Если первая буква первого слова меньше первой буквы второго слова, то первое слово располагается раньше второго. Если первые буквы слов совпадают, то сравнение производится по вторым буквам, и т. д. Например, в алфавите /{0, 1/} буква 0 меньше, чем буква 1, поэтому слова, начинающиеся на 0, в словаре двоичных слов должны располагаться раньше, чем слова, которые начинаются на 1.
В общем случае, пусть p - целое число, такое что p > 1, и алфавит A содержит p букв со значениями от 0 до p - 1:
Будем считать, что $$a_0 < a_1 < \dots< a_{p - 1}$$. Всего над алфавитом A существует $$p^k$$ слов длины k, так как на каждой из k позиций в слове может стоять любая из p букв. Поэтому набор этих слов соответствует цифрам в системе счисления с основанием $$p^k$$.
Замечание. Пусть $$v_1, v_2, \dots, v_s$$, где $$s = p^n$$, - упорядоченное множество слов длины n над алфавитом A. Тогда упорядоченное множество слов длины n + 1 имеет вид:
Пусть p = 2 и A = /{0, 1/}. Имеем:
- упорядоченный набор слов длины 0;
0, 1 - упорядоченный набор слов длины 1;
00, 01, 10, 11 - упорядоченный набор слов длины 2, и т. д.
Слова длины 3 и 4 называют триадами и тетрадами, соответственно.
Ниже приведены таблицы двоичных слов длины k, для k = 2, 3 и 4 ( рис. 1.1), и соответствующих им цифр в системе счисления с основанием $$2^k$$, которые представляют эти слова. В заголовке каждого столбца указывается основание системы счисления, которой принадлежат слова, содержащиеся в столбце.
(рис 1.1) Таблицы триад и тетрад
Таблицы используются для быстрого преобразования представления числа между двоичной системой счисления и системами счисления с основаниями 4, 8 и 16.
Рассмотрим представление чисел в системах счисления с основаниями p и $$p^k$$, для k > 1.
Положим $$s = p^k$$. Для целого неотрицательного числа x имеем:
где $$0 \le d_i < p^k$$, для i = 0, 1, ..., n. Но $$d_i < p^k$$, поэтому в системе счисления с основанием p для цифр $$d_i$$ выполняются следующие разложения:
где $$0 \le b_{ij} < p$$, для j = 0, 1, ..., k, i = 0, 1, ..., n. Соответственно, в системе счисления с основанием p число $$d_i$$ имеет представление $$d_i = b_{i0}b_{i1} \dots b_{ik p}$$.
Подставим указанные выше разложения для чисел $$d_i$$ в разложение для числа x, в результате будем иметь:
$$ x=b_{00}p^{kn + k - 1} + b_{01}p^{kn + k - 2} + \dots + b_{0k}p^{kn}+ b_{10}p^{kn - 1}+ b_{11}p^{kn - 2}+ \dots + b_{1k}p^{kn - k} +\\ \dots + b_{n0}p^{k - 1} + b_{n1}p^{k - 2}+ \dots + b_{nk}$$Поэтому число x в системе счисления с основанием p имеет следующее представление:
$$x = b_{00}b_{01} \dots b_{0k}b_{10}b_{11} \dots b_{1k} \dots b_{n0}b_{n1} \dots b_{nk p}.$$Таким образом, если число в системе счисления с основанием $$p^k$$ имеет представление $$d_{0d1} \dots d_n$$, то для того, чтобы найти его представление в системе счисления с основанием p, достаточно каждую из цифр $$d_i$$, для i = 0, 1, ..., n, заменить ее представлением в системе счисления с основанием p с помощью слова длины k.
Пример 16. С помощью таблиц найдем представление чисел $$301_4$$, $$1073_8$$ и $$2ae8_{16}$$ в двоичной системе счисления. Имеем:
$$301_4 = 11 00 01 = 110001_2;\\ 1073_8 = 001 000 111 011 = 1000111011_2;\\ 2ae8_{16} = 0010 1010 1110 1000 = 10101011101000_2.$$Пример 17. Представление чисел $$7125_9$$ и $$2020_9$$ в троичной системе счисления можно найти следующим образом:
$$7125_9 = 21 01 02 12 = 21010212_3;\\ 2020_9 = 02 00 02 00 = 2000200_3.$$Проведенные выше преобразования с помощью знака суммирования $$\sum$$ можно записать в виде:
$$x=\sum_{i=0}^nd_is^{n-i}=\sum_{i=0}^nd_ip^{k(n-i)}= \sum_{i=0}^n \Bigl(\sum_{j=0}^{k-1}b_{ij}p^{k-1-j}\Bigr)p^{k(n-i)}=\\ =\sum_{i=0}^n \sum_{j=0}^{k-1}b_{ij}p^{k(n-i)+k-1-j}=\sum_{i=0}^n \sum_{j=0}^{k-1}b_{ij}p^{kn+k-1-(ki+j)}=\\ =\sum_{q=0}^{kn+k-1}b_{q \:\text{div}\: k,q \mod k}p^{kn+k-1-q}=\sum_{q=0}^{kn+k-1}c_qp^{kn+k-1-q} $$В предпоследнем равенстве выполнен переход от двойного суммирования к суммированию по одному индексу с помощью замены q = ki + j. Индексы i и j меняются от 0 до n и от 0 до k - 1, соответственно, поэтому индекс q последовательно принимает все значения от 0 до kn + k - 1. Далее, учитывая, что $$0 \le j < k$$, получим: i = q div k, j = q mod k. В последнем равенстве приведенного выше выражения выполнен переход от двойных индексов к одинарным: $$c_q = b_{q \:\text{div}\: k, q \mod k}$$. Итак, имеем:
Пусть теперь в системе счисления с основанием p для целого неотрицательного числа x выполняется разложение
где m = k(n + 1) - 1, $$k > 1, n \ge 0; 0 \le c_j < p$$, для j = 0, 1, ..., m. Число слагаемых в правой части равенства кратно k. Разобьем их последовательно на группы, содержащие по k элементов (очевидно, что таких групп будет n + 1), в результате будем иметь:
Положим
$$d_0 = c_0p^{k - 1} + c_1p^{k - 2} + \dots + c_{k - 1},\\ d_1 = c_kp^{k - 1} + c_{k + 1}p^{k - 2} + \dots + c_{2k - 1},\\ \dots d_n = c_{m - k + 1}p^{k - 1} + c_{m - k + 2}p^{k - 2} + \dots + c_m.$$Ясно, что $$0 \leqslant d_j < p^k$$, для j = 0, 1, ..., n. Кроме того, m = kn + k - 1. Поэтому представление числа x в системе счисления с основанием $$p^k$$ имеет вид: $$x = d_0p^{kn} + d_1(p^k)^{n - 1} + \dots + d_n$$
Таким образом, при преобразовании представления числа из системы счисления с основанием p в систему счисления с основанием $$p^k$$, достаточно сгруппировать буквы исходного слова в слова длины k, при необходимости добавив нули в начале слова, а затем заменить эти слова
Пример 18. Для числа 73 по таблицам имеем:
$$ 73 = 1001001_2 = 01 00 10 01 = 1021_4 = 001 001 001 = 111_8 = 0100 1001 = 49_{16}.$$Преобразование дробной части числа, если она имеет конечное число знаков после запятой, выполняется аналогичным образом, так как
$$0,b_{n + 1}b_{n + 2} \dots b_{n + k p}= p^{ - k} * b_{n + 1}b_{n + 2} \dots b_{n + k p} =p{ - k - 1} * b_{n + 1}b_{n + 2} \dots b_{n + k}0_p = \dots$$Очевидно, что для дробной части при преобразовании представления числа из системы счисления с основанием p в систему счисления с основанием $$p^k$$ необходимое число нулей добавляется справа.
Пример 19. С помощью таблиц найдем двоичное представление чисел $$0,032_4$$, $$0,704_8$$ и $$0,9e0a_{16}$$. Имеем:
$$0,032_4 = 0,00 11 10 = 0,00111_2;\\ 0,702_8 = 0,111 000 010 = 0,11100001_2;\\ 0,9e0a_{16} = 0,1001 1110 0000 1010 = 0,100111100000101_2.$$Пример 20. Найдем представление чисел $$0,011_2$$ и $$10101,10011_2$$ в системах счисления с основаниями 4, 8 и 16 с помощью таблиц:
Ниже приведена общая таблица для преобразования чисел между системами счисления с основаниями 3 и 9, а также 4 и 16 ( Таблица ).
(рис 1.2) Соответствие между системами счисления с основаниями 3 и 9, 4 и 16
Пример 21. 1) Найдем для чисел $$2805_09$$ и $$1f58_{16}$$ их троичное и четверичное представления, соответственно. По таблице h имеем:
$$2805_9 = 02 22 00 12 = 2220012_3;\\ 1f58_{16} = 01 33 11 20 = 1331120_4.$$2) Представление чисел $$2120121_3$$ и $$10032_4$$ в системах счисления с основаниями 9 и 16, соответственно, по рис 1.2 находится следующим образом:
$$2120121_3 = 02 12 01 21 = 2517_9;\\ 10032_4 = 01 00 32 = 10e_{16}.$$В системах счисления с основаниями от 11 до 36 включительно цифрами являются десятичные цифры и буквы латинского алфавита. Эти цифры приведены в табл.. Ячейка с индексами i и j содержит цифру, значение которой в десятичной системе равно 10i + j.
(рис 1.3) Обозначения цифр в системах счисления...
Пример 22. 1) Найдем шестеричное представление числа $$9o4zaaaaaaa_{36}$$. Имеем: $$9_{36} = 9_{10} = 13_6, o_{36} = 24_{10} = 40_6, z_{36} = 35_{10} = 55_6$$. Поэтому
$$9o4z_{36} = 13 40 04 55 = 13400455_6.$$2) Найдем представление числа $$142124403_5$$ в системе счисления с основанием 25. Имеем: $$42_5 = 22_{10}; 12_5 = 7_{10}; 44_5 = 24_{10}.$$
Следовательно,
$$142124403_5 = 01 42 12 44 03 = 1m7o3_{25}.$$В системах счисления с основанием 37 и более в качестве цифр часто используются десятичные числа. В этом случае цифры состоят из нескольких знаков. Мы в записи чисел будем просто разделять такие цифры пробелами (как в системе Wolfram|Alpha - см. гл. 7).
Пример 23. Вычислим 60-ричное представление числа 43000. Имеем:
43000 = 716 * 60 + 40; 716 = 11 * 60 + 56.
Таким образом, $$43000 = 11 56 40_{60}$$. Отсюда, в частности, следует, что 43000 секунд составляет 11 часов, 56 минут и 40 секунд.
В вавилонской системе счисления c основанием 60 для записи цифр, от 1 до 59, использовались два знака: стоячий клин для обозначения 1 и лежачий для обозначения 10 ( рис. 1.1 (a)). Разряды отделялись пробелами, иногда для разделения цифр использовались специальные символы, по причине отсутствия нуля. В ней число 43000 могло быть записано так, как показано на рис. 1.4 (b).
(рис 1.4) Рис. 1.4. (a) Клинописное обозначение чисел 1 (слева) и 10 (справа); (b) представление числа 43000
Пример 24. Найдем семеричное представление числа $$3 42,0 24_{49}$$. Имеем: $$3_{49} = 03_7, 42_{49} = 60_{7}, 24_{49} = 33_7$$. Поэтому
$$3 42,0 24_{49} = 03 60,00 33 = 360,0033_7.$$Пример 25. Найдем представление числа $$2310,1022_4$$ в системе счисления с основанием 64:
$$2310,1022_4 = 002 310,102 200 = 2 52,18 32_{64},$$так как $$310_4 = 3 * 16 + 1 * 4 + 0 = 52, 102_4 = 16 + 2 = 18, 200_4 = 2 * 16 = 32$$.
Запишите число 100 в системе счисления с основанием
a) 2;
b) 3;
c) 12;
d) 20;
e) 60.
Найдите двоичное представление числа
a) 1,1;
b) 7,7;
c) 14,14;
d) 33,3.
Представьте число 22,2 в системе счисления с основанием
a) 4;
b) 8;
c) 12;
d) 16.
p, где $$p>3$$, число $$1331_p$$ является кубом числа $$11_p$$.Найдите десятичное представление числа
a) $$a1,1a_{16}$$;
b) $$107,07_8$$;
c) $$124,104_5$$;
d) $$313,03_4$$.
Не используя (4), представьте в виде рациональной дроби число
a) 0,22(321);
b) $$0,22(321)_4$$
Представьте в виде рациональной дроби число
a) 0,(023);
b) 0,0(7);
c) $$0,(14)_5$$;
d) $$0,0110(110101)_2$$.
Постройте 1) таблицу сложения; 2) таблицу умножения в системе счисления с основанием
a) 2;
b) 3;
c) 4;
d) 8;
e) 16.
Выполните операции сложения, вычитания, умножения и деления в системе счисления с основанием p для чисел
a) $$10001_2$$ и $$110_2$$, p = 2;
b) $$1a0f_{16}$$ и $$2c_{16}$$, p = 16.
Выполните действия в троичной системе счисления:
a) $$201_3 + 12002_3$$;
b) $$2020_3 - 122_3$$;
c)$$112\frac23$$;
d) $$2012_3 21_3$$.
Выполните действия в системе счисления с указанным основанием:
a) $$6_{12} + 29_{12}$$;
b) $$99_{20} - 33_{20}$$;
c) $$5_{12} * 12_{12}$$;
d) $$20_{20} * 15_{20}$$.
Найдите представление числа x в системе счисления с основанием p, если
a) $$x = 4,5_7$$, p = 3;
b) $$x = 432,12_5$$, p = 7.
Найдите представление числа $$10010010110,0100010_2$$ в системе счисления с основанием
a) 4;
b) 8;
c) 16;
d) 32.
Найдите представление в двоичной системе счисления числа
a) $$201,2301_4$$;
b) $$603,72_8$$;
c) $$f0cd,a09_{16}$$.
Найдите представление в двоичной системе счисления числа
a) $$3o7,b_{32}$$;
b) $$2 11,5_{100}$$.
Постройте общую таблицу
a) для преобразования чисел между системами счисления с основаниями 5 и 25, а также 6 и 36;
a) для преобразования чисел между системами счисления с основаниями от 2 до 6 включительно и системами счисления с основаниями, равными квадратам этих чисел, т. е. с основаниями 4, 9, 16, 25 и 36, соответственно;
Найдите представление числа x в системе счисления с основанием p, если
a) $$x = 22011,01102_3$$, p = 9;
b) $$x = 678,345_9$$, p = 3;
c) $$x = 221,01331_4$$, p = 16;
d) $$x = 7ea8,3d_{16}$$, p = 4;
e) $$x = 40332,204_5$$, p = 25;
f) $$x = 2efd,o8m_{25}$$, p = 5;
g) $$x = 5544332,211_6$$, p = 36;
h) $$x = zzx7,5ni7_{36}$$, p = 6.
Постройте таблицу для преобразования чисел между системами счисления
a) 4 и 64;
b) 8 и 64;
c) 7 и 49.
Найдите представление числа x в системе счисления с основанием p, если
a) $$x = 794,802$$, p = 100;
b) $$x = 86 5,0 29_{100}$$, p = 10;
c) $$x = 333,201_4$$, p = 64;
d) $$x = 22 35,12 5_{64}$$, p = 4;
e) $$x = 543,345_8$$, p = 64;
f) $$x = 2 38,11 25_{64}$$, p = 8;
g) $$x = 2387,145_7$$, p = 49;
h) $$x = 2 48,8 23_{49}$$, p = 7;
i) $$x = 11001111,011_2$$, p = 64;
j) $$x =14 3,34 5_{64}$$, p = 2;
k) $$x = 64000,5$$, p = 60;
l) $$x = 22 35,12 5_{60}$$, p = 10.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.