Ш. Порядок выполнения работы

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

Сначала делим тринадцать на два, получаем частное, равное шести, и единицу в остатке; так как частное не равно нулю, делим его на два в соответствии с шагом 2 алгоритма перевода.

Ш. Порядок выполнения работы - student2.ru

Рисунок 5 – Получение двоичной записи числа 13

В результате имеем новое частное, равное трем, и ноль в остатке. Это частное также не равно нулю, поэтому делим его на два, получая частное, равное единице, и два в остатке. Еще раз делим частное (единицу) на два, в этот раз частное равно нулю, а остаток единице. Так как мы получили в результате деления ноль, то переходим к третьему шагу и получаем двоичную запись исходного значения (тринадцать), которая имеет вид 1101.

Пример 2. Перевести число 1000001 в десятичную систему счисления:

Найдем сумму произведений значений битов на их весовые коэффициенты. найденная сумма и будет являться десятичным представлением числа 1000001.

1000001(2) =1×26+0×25+0×24+0×23+0×22+0×21+1×20=64+1=65(10).

Замечание. Если в каком-либо разряде стоит нуль, то соответствующее слагаемое можно опускать.

Пример 3. Сложить числа 00111010 и 00011011.

Решение задачи

+00111010

00011011

мы начинаем со сложения 0 и 1 в последнем столбце, получаем единицу, которую записываем под столбцом. Теперь мы складываем две единицы из следующего столбца, получая 10. Записываем 0 под столбцом, а 1 — над следующим столбцом. На этом этапе процесс решения выглядит следующим образом:

00011011

Складываем 1, 0 и 0, получаем 1 и записываем ее под этим столбцом. Следующие две единицы в сумме дают 10, записываем 0 под столбцом и переносим 1 в следующий столбец. Теперь решение выглядит так:

+00111010

00011011

Три единицы в следующем столбце в сумме дают 11, записываем младшую 1 под столбцом, а другую переносим в следующий столбец. Теперь складываем 1, 1 и 0, получаем 10. Снова записываем 0 под столбцом, а 1 — в следующий столбец.

+00111010

00011011

Складываем 1, 0 и 0 из предпоследнего столбца, получаем 1, записываем ее под столбцом. И, наконец, сумма чисел в последнем столбце равна 0, записываем ее под столбцом. Окончательное решение выглядит так:

+00111010.

Пример 4. Найти десятичный эквивалент чисел, заданных в представлении с плавающей точкой

Предположим, что байт содержит такую последовательность битов: 01101011. Проанализируем эту последовательность, применяя определения, данные выше: знаковый разряд равен 0, порядок — 110 и мантисса — 1011. Для того чтобы расшифровать значение, хранящееся в байте, сначала извлекаем мантиссу и помещаем слева от нее разделительную точку, получая

.1011.

Затем извлекаем порядок (110) и переводим его как 3-битовое представление с избытком в десятичную систему счисления. В нашем случае код порядка является представлением 2. Перемещаем разделительную точку на 2 бита вправо (отрицательный порядок означает, что точку нужно перемещать влево). Следовательно, мы имеем последовательность

10.11,

которая является двоичной записью дроби 23/4. Затем обращаем внимание на то, что знаковый разряд равен 0, следовательно, перед нами неотрицательное число. Делаем вывод, что в байте 01101011 хранится число 23/4.

В качестве еще одного примера рассмотрим байт 10111100. Выписываем мантиссу

.1100

и перемещаем точку на один бит влево, так как порядок (011) является кодом числа — 1. Имеем последовательность

.01100,

которая является кодом 3/8. Знаковый разряд исходной последовательности равен 1, значит, число отрицательное. Делаем вывод, что последовательность 10111100 является кодом - 3/8.

Пример 5. Чтобы записать число в представлении с плавающей запятой, выполняем действия, обратные предыдущим. Например, чтобы записать число 11/8, сначала выражаем его в двоичном представлении и получаем 1.001. Затем переписываем эту последовательность в область мантиссы слева направо, начиная с самой левой единицы в двоичной записи. На этом этапе байт выглядит следующим образом: _ _ _ _ 1 0 0 1

Теперь нужно заполнить поле порядка. Для этого представляем ман-тиссу с разделительной точкой слева и определяем число битов и направление, в котором нужно передвинуть точку, чтобы получить исходную двоичную запись. В нашем примере, чтобы получить 1.011, нужно передвинуть точку в .1001 на один бит вправо. Следовательно, порядок равен 1, поэтому записываем 101 (код 1 в представлении с избытком 4) в поле порядка. Наконец, записываем в позицию знакового разряда 0, потому что дробь неотрицательная. Окончательный байт выглядит так:

01011001.

Наиболее тонким моментом в преобразовании является заполнение поля мантиссы. Правило гласит: выписывать последовательность разрядов двоичной записи слева направо, начиная с самой левой 1 в двоичной записи. В качестве примера рассмотрим процесс записи числа 3/8, двоичное представление которого .011. В этом случае мантиссой будет

_ _ _ _ 1 1 0 0,

а не

_ _ _ _ 0 1 1 0.

Мантисса имеет такой вид, потому что поле мантиссы заполняется, начиная с самой левой единицы, которая появляется в двоичном представлении. Это правило исключает возможность многократной записи одного значения. Оно также означает, что мантисса чисел, не равных нулю, будет всегда начинаться с 1. О таком представлении говорят, что оно нормализованное. Обратите внимание, что представление нуля является особым случаем: его представление с плавающей точкой состоит из одних нулей. Ошибка усечения. Рассмотрим проблему, которая возникает, когда мы пытаемся записать значение 25/8 в представлении с плавающей точкой, используя для него один байт памяти. Сначала записываем 25/8 в двоичном представлении, получаем 10.101. Но, когда мы переписываем его в поле мантиссы, нам не хватает места, и самая правая 1 (которая занимает позицию с весом разряда 1/8) теряется. Если мы на данном этапе будем игнорировать эту проблему и продолжим заполнение поля порядка, то в результате придем к последовательности 01101010, которая является представлением 21/2 вместо 25/8. То, что произошло, называется ошибкой усечения и означает, что часть числа потеряна, потому что поле мантиссы недостаточно велико.

IV.Отчет по работе

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

В первой части отчета должны быть приведены название и цель работы.

Вторая часть отчета должна содержать описание решения индивидуального задания.

В заключительной части отчета должны быть приведены выводы, содержащие научный анализ полученных результатов.

V. Контрольные вопросы

1. Чему равен дополнительный код отрицательного числа?

2. С какой целью отрицательные числа записываются в виде дополнительного кода?

3. На что опирается способ представления чисел с плавающей запятой?

Наши рекомендации