Российский государственный гуманитарный университет
Опубликован: 13.07.2022 | Доступ: свободный | Студентов: 281 / 10 | Длительность: 11:54:00
Специальности: Программист
Лекция 1:

Представление чисел в системах счисления

Лекция 1: 1234 || Лекция 2 >

Имеем: 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 = {a_0, a_1, \dots, a_{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 имеет вид:

a_0v_1 a_0v_2, \dots, a_0v_s, a_1v_1, a_1v_2, \dots, a_1v_s, \dots, a_{p - 1}v_1, a_{p - 1}v_2, \dots, a_{p - 1}v_s
Таблицы триад и тетрад

Пусть 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

Рассмотрим представление чисел в системах счисления с основаниями p и p^k, для k > 1.

Положим s = p^k. Для целого неотрицательного числа x имеем:

 x= d_0s^n + d_1s^{n - 1} + \dots + d_n = d_0p^{kn} + d_1p^{kn - k} + \dots + d_n,

где 0 \le d_i < p^k, для i = 0, 1, ..., n. Но d_i < p^k, поэтому в системе счисления с основанием p для цифр d_i выполняются следующие разложения:

d_i = b_{i0}p^{k - 1} + b_{i1}p^{k - 2} + \dots + b_{ik},

где 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_0d_1 \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}. Итак, имеем:

x= d_0d_1 \dots d_{n s} = c_0c_1 \dots c_{k - 1} c_kc_{k + 1} \dots c_{2k - 1} \dots c_{kn}c_{kn + 1} \dots c_{kn + k- 1 p}.
Лекция 1: 1234 || Лекция 2 >