- •Информационные преобразования числовых форматов
- •Позиционные системы счисления
- •Преобразования целых чисел в двоичной и десятичной системах счисления
- •Коды двоичных целых чисел
- •1. Знаковый прямой код целого числа.
- •2. Обратный код целого числа.
- •3. Дополнительный код целого числа.
- •Битовое отображение целого числа
- •Нормальная форма вещественного числа
- •Преобразования вещественных чисел в двоичной и десятичной системах счисления
- •Преобразование вещественного числа в целое число
- •Преобразование целого числа в вещественное число
- •Фиксированный вещественный формат
- •Символьные преобразования числовой информации
- •Список литературы
- •Оглавление
Преобразования целых чисел в двоичной и десятичной системах счисления
Любое целое число можно представить в
виде полинома позиционных чисел (1). Для
однопозиционных чисел это очевидно,
например
.
Для двухпозиционного числа пример может
выглядеть так:
.
Аналогичные варианты можно привести
для двоичных чисел. Например,
.
(3)
Учитывая, что 02 = 010, 12 = 110 и 102 = 210, заменим двоичные числа в представлении (3) на десятичные числа:
(4)
Равенство 11012 = 1310 можно непосредственно проверить, если 13 раз складывать 1 в двоичной системе счисления. Таким образом, алгоритм перевода целых чисел из двоичной системы счисления в десятичную систему реализуется следующим образом:
-
представить двоичное число в позиционном формате полинома;
-
заменить двоичные позиционные числа десятичными числами;
-
выполнить арифметические действия сложения с десятичными числами.
Позиционное представление чисел в примерах (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 не соблюдает единую аксиоматику арифметики для отрицательных и положительных чисел. Для таких чисел процессор компьютера должен иметь специальные инструкции для корректного выполнения действий арифметики.
