Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационные преобразования числовых форматов....doc
Скачиваний:
10
Добавлен:
13.11.2018
Размер:
333 Кб
Скачать
☆

Преобразования целых чисел в двоичной и десятичной системах счисления

Любое целое число можно представить в виде полинома позиционных чисел (1). Для однопозиционных чисел это очевидно, например . Для двухпозиционного числа пример может выглядеть так: . Аналогичные варианты можно привести для двоичных чисел. Например,

. (3)

Учитывая, что 02 = 010, 12 = 110 и 102 = 210, заменим двоичные числа в представлении (3) на десятичные числа:

(4)

Равенство 11012 = 1310 можно непосредственно проверить, если 13 раз складывать 1 в двоичной системе счисления. Таким образом, алгоритм перевода целых чисел из двоичной системы счисления в десятичную систему реализуется следующим образом:

  1. представить двоичное число в позиционном формате полинома;

  2. заменить двоичные позиционные числа десятичными числами;

  3. выполнить арифметические действия сложения с десятичными числами.

Позиционное представление чисел в примерах (3), (4) можно использовать для перевода чисел из 10-й системы счисления в двоичную систему. Например,

(5)

Непосредственная проверка примера (5) по аналогии с примером (4) подтверждает корректность преобразования . Так работают вычислительные алгоритмы компьютеров.

Ручное преобразование использует операцию последовательного деления исходного числа и промежуточных результатов на число 2. Затем результат «собирается» в «обратном» порядке. Например,

25 2

24 12 2

1 12 6 2

0 6 3 2

0 2 1

1

Прочитывая конечный результат 1 и остатки от делений, получаем .

Коды двоичных целых чисел

Согласно аксиомам арифметики, любой элемент может быть числом, если он не нарушает упорядоченность чисел. Если несколько изменить аксиоматику арифметики, допустив, что перед начальным числом 0 возможен элемент, к которому можно прибавить порождающее число 1, получая 0. Рассуждая аналогичным образом, перед таким числом также должно находиться еще одно число, и т.д. Нетрудно видеть, что положительные целые числа и новые числа располагаются симметрично относительно нуля, если в качестве симметрии взять количество порождающих единиц до или после начального числа 0. Но число 0 не образовано с помощью порождающей единицы, и, следовательно, не содержит единиц. Тогда возникает ситуация, что среди новых чисел есть такие, которые противоположны или отрицательны относительно заданного целого положительного числа. В 10-й системе такие числа обозначают со знаком минус, например –5.

1. Знаковый прямой код целого числа.

Представим себе, что целое число занимает 1 байт и состоит из 8-ми битов. В компьютерной технологии практикуется подход, когда один бит, как правило старший, используется для представления знака числа: 0 – положительное целое число, 1 – отрицательное число (рис. 1). Тогда оставшиеся 7 бит хранят значение числа. В этом случае диапазон чисел составляет [-127: +127]. Любопытен факт, что существует как –0, так и +0. Это не приводило к недоразумениям, поскольку 0 со знаком все равно остается 0.

7

6

5

4

3

2

1

0

0

1

1

0

0

1

0

1

знак +

а)

7

6

5

4

3

2

1

0

1

1

1

0

0

1

0

1

знак -

б)

Рис. 1. Прямой код положительного a) и отрицательного б) числа.

Если 8 бит рассматривать как код целого числа независимо от знака, то числа [00000000 ; 01111111]2 ~ [0 ; 127]10 составляют диапазон положительных чисел, а числа [11111111 ; 10000000]2 ~ [-127 ; -0]10 составляют диапазон отрицательных чисел. В этом смысле диапазон [0; 11111111]2 не соблюдает единую аксиоматику арифметики для отрицательных и положительных чисел. Для таких чисел процессор компьютера должен иметь специальные инструкции для корректного выполнения действий арифметики.