Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GL00.doc
Скачиваний:
3
Добавлен:
07.08.2019
Размер:
308.22 Кб
Скачать

0.6. Системы счисления.

Система счисления — это система записи чисел.

Пусть b — натуральное число, большее единицы. Тогда любое целое неотрицательное число единственным образом представимо в виде:

a = an–1bn–1 + an–2 bn–2 + ... + a1b + a0,

где . (Это теорема, ее доказательство опустим.) Число a записывают так: a = an–1an–2...a0. Здесь b — основание системы счисления, n — разрядность числа, ai — цифры. Это представление называют позиционным, так как "вклад" каждой цифры определяется ее позицией в числе: последняя (младшая) цифра умножается на весовой коэффициент b0 = 1, а первая (старшая) цифра — на bn–1.

Обычно используют следующие системы счисления: = 2 — двоичная (binary), = 8 — восьмеричная (octal), = 10 — десятичная (decimal), = 16 — шестнадцатеричная (hexadecimal). Перевод чисел из одной системы счисления в другую основывается на записи многочлена по так называемой схеме Горнера:

a = (...((an–1b + an–2)b + an–3)b+... + a1)b + a0.

Ясно, что a0 — остаток от деления a на b, a1 — остаток от деления предыдущего частного на b и т.д. Наконец an–1 — последнее частное.

Пример. 2610 перевести в двоичную систему счисления. Выполняем последовательное деление 26 на 2, далее располагаем в обратном порядке последнее частное и остатки (рис. 0.2).

26

2

26

13

2

0

12

6

2

1

6

3

2

0

2

1

1

Рис. 0.2.

Получена двоичная запись исходного числа. Итак, 2610 = 110102.

Проверка: (((1*2+1)*2+0)*2+1)*2+0=26, или 1*24+1*23+0*22+1*21+0*20 = 26.

Упражнение. Перевести 5710 в двоичную систему счисления.

Упражнение. Перевести 10011012 в десятичную систему счисления.

0.7. Шестнадцатеричная система счисления

ЭВМ строится на базе элементов, которые могут находиться в двух устойчивых состояниях. Эти состояния кодируются нулем и единицей. Информация внутри ЭВМ представляется цепочками нулей и единиц, поэтому для чисел наиболее естественно использовать двоичную систему счисления. Но эта система неудобна для человека — сразу и не скажешь, например, различны ли числа 1110010010110111 и 1110011010110111 и какое из них больше. Хотелось бы иметь более компактную запись, причем такую, чтобы по ней можно было легко восстановить исходное двоичное представление. К счастью, системы счисления, основания которых являются степенями двойки (= 2k), очень просто связаны с двоичной. Используют, как правило, = 8 или = 16. Для = 16 представление удобнее (почему — разберем чуть позже).

a = an–116n–1 + an-216n–2 + ... + a116 + a0, 0  ai  15.

Каждую цифру ai представим в двоичной системе: ai = ci,323 + ci,222 + ci,121 +ci,0. Подставляя их в исходное 16-ричное представление, получаем двоичное представление числа. Итак, для перехода от одного основания к другому нужно иметь таблицу двоичного представления чисел (цифр) от 0 до 15.

Составим таблицу (табл. 0.3) двоичных представлений для чисел от 0 до 2– 1 = 15. (Например, 6 = 1*22+1*21+0*20.) Арабских цифр для этого не хватает, поэтому условились цифрам выше 9 ставить в соответствие буквы латинского алфавита.

Таблица 0.3. Числа от 0 до 15 в двоичной и 16-ричной системах счисления

b = 16

b = 2

b = 16

b = 2

b = 16

b = 2

b = 16

b = 2

0

0000

4

0100

8

1000

C(12)

1100

1

0001

5

0101

9

1001

D(13)

1101

2

0010

6

0110

A(10)

1010

E(14)

1110

3

0011

7

0111

B(11)

1011

F(15)

1111

Эту таблицу необходимо выучить наизусть. Тяжелее всего выучивается старшая часть таблицы. Для некоторых цифр можно предложить мнемонические правила (рис. 0.3). Буква А ножками упирается в единицы, перекладина — над нулем. Буквы C и E положим набок, тогда каждой горизонтальной перекладине соответствует единица.

Рис. 0.3.

Наконец, буква F (Finish) соответствует последней (финальной) цифре.

Теперь сформулируем правила перехода.

Переход 16 2. Заменить каждую цифру ее двоичным представлением. Например, 1A = 0001 1010 = 11010. (Ведущие нули можно опустить.)

Переход 2 16. Разбить число справа налево на тетрады (четверки цифр). Каждую тетраду заменить 16-ричной цифрой. Например,

10110111111100

= 10 1101 1111 1100

= 2DFC.

Упражнение. Найти двоичные и десятичные эквиваленты следующих 16-ричных чисел: D5, 9A26, 7BF5.

Упражнение. Сформулируйте правила перехода для восьмеричной системы счисления. Приведите примеры.

В заключение процитируем Питера Нортона: "Шестнадцатеричная система - разумный компромисс между тем, что удобно машине, и тем, что удобно нам с вами" [Нортон].

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]