Преобразование десятичного числа в двоичный формат IEEE 754

Автор: John Pratt
Дата создания: 15 Февраль 2021
Дата обновления: 1 Июль 2024
Anonim
Архитектура ПК: Стандарт IEEE 754 чисел с плавающей точкой. Центр онлайн-обучения «Фоксфорд»
Видео: Архитектура ПК: Стандарт IEEE 754 чисел с плавающей точкой. Центр онлайн-обучения «Фоксфорд»

Содержание

В отличие от людей, компьютеры не используют десятичную систему счисления. Они используют двоичную или двоичную систему счисления с двумя возможными цифрами, 0 и 1. Таким образом, числа записываются в IEEE 754 (стандарт IEEE для представления двоичных чисел с плавающей запятой) по-другому, чем в традиционной десятичной системе, которую мы должны быть привыкшим. В этой статье вы узнаете, как записать число с одинарной или двойной точностью в соответствии с IEEE 754. Для этого метода вам нужно знать, как преобразовывать числа в двоичную форму. Если вы не знаете, как это сделать, вы можете узнать об этом, изучив статью «Преобразование двоичного числа в десятичное».

Шагать

  1. Выберите одинарную или двойную точность. При записи числа с одинарной или двойной точностью шаги к успешному преобразованию будут одинаковыми для обоих. Единственное изменение происходит при преобразовании экспоненты и мантиссы.
    • Сначала нам нужно понять, что означает одинарная точность. В представлении с плавающей запятой любое число (0 или 1) считается «битом». Таким образом, одинарная точность имеет в общей сложности 32 бита, разделенных на три разных объекта. Эти предметы состоят из знака (1 бит), экспоненты (8 бит) и мантиссы или дроби (23 бита).
    • С другой стороны, двойная точность имеет ту же настройку и те же три части, что и одинарная точность - с той лишь разницей, что это будет большее и более точное число. В этом случае знак будет иметь 1 бит, показатель степени 11 бит и мантисса 52 разряда.
    • В этом примере мы собираемся преобразовать число 85,125 в одинарную точность в соответствии с IEEE 754.
  2. Разделите число до и после запятой. Возьмите число, которое вы хотите преобразовать, и разделите его так, чтобы у вас осталось целое число и десятичное число. В этом примере мы предполагаем число 85,125. Вы можете разделить это на целое число 85 и десятичное 0,125.
  3. Преобразуйте целое число в двоичное число. Это становится 85 из 85,125, что станет 1010101 при преобразовании в двоичную форму.
  4. Преобразуйте десятичную часть в двоичное число. Это 0,125 из 85,125, что в двоичном формате становится 0,001.
  5. Соедините две части числа, преобразованные в двоичные числа. Число 85 является двоичным, например 1010101, а десятичная часть 0,125 является двоичной 0,001. Если вы объедините их с десятичной точкой, вы получите 1010101,001 в качестве окончательного ответа.
  6. Преобразуйте двоичное число в двоичное научное представление. Вы можете преобразовать число в двоичное научное представление, переместив десятичную запятую влево, пока она не окажется справа от первого бита. Эти числа нормализованы, что означает, что ведущий бит всегда будет равен 1. Что касается экспоненты, то количество раз, когда вы перемещаете десятичную дробь, является показателем в двоичной научной записи.
    • Помните, что перемещение десятичной дроби влево дает положительный показатель степени, а перемещение десятичной дроби вправо дает отрицательный показатель степени.
    • В нашем примере вам нужно переместить десятичную дробь шесть раз, чтобы она оказалась справа от первого бита. Результирующий формат становится 01,01010100126{ displaystyle 01.010101001 * 2 ^ {6}}Определите знак числа и отобразите его в двоичном формате. Теперь вы определите, положительное или отрицательное исходное число. Если число положительное, запишите этот бит как 0, а если оно отрицательное, как 1. Поскольку исходное число 85,125 положительное, запишите этот бит как 0. Теперь это первый бит из 32 битов с одинарной точностью. рендеринг в соответствии с IEEE 754.
    • Определите показатель степени на основе точности. Существует фиксированное смещение как для одинарной, так и для двойной точности. Смещение экспоненты для одинарной точности равно 127, что означает, что мы должны добавить ранее найденную двоичную экспоненту. Итак, показатель, который вы собираетесь использовать, равен 127 + 6 = 133.
      • Двойная точность, как следует из названия, более точна и может содержать большие числа. Следовательно, смещение показателя степени 1023. Здесь применяются те же шаги, что и для одинарной точности, поэтому показатель степени, который вы можете использовать для определения двойной точности, равен 1029.
    • Преобразуйте экспоненту в двоичную форму. После определения окончательной экспоненты вам необходимо преобразовать ее в двоичную форму, чтобы ее можно было использовать в преобразовании IEEE 754. В этом примере вы можете преобразовать 133, найденные на последнем шаге, в 10000101.
    • Определите мантиссу. Аспект мантиссы или третья часть преобразования IEEE 754 - это остаток числа после десятичной дроби в научной двоичной системе счисления. Вы просто опускаете 1 впереди и копируете десятичную часть числа, которая умножается на два. Никакого двоичного преобразования не требуется! В этом примере мантисса становится 010101001 из 01,01010100126{ displaystyle 01.010101001 * 2 ^ {6}}Наконец, соедините три части в одно число.
      • Наконец, вы объединяете все, что мы рассчитали до сих пор, в своей конверсии. Номер сначала будет начинаться с 0 или 1, которые вы определили на шаге 7 в зависимости от знака. В этом примере вы начинаете с 0.
      • Тогда у вас есть показатель степени, который вы определили на шаге 9. В этом примере показатель степени равен 10000101.
      • Затем следует мантисса, третья и последняя часть преобразования. Вы пришли к такому выводу ранее, когда взяли десятичную часть двоичного преобразования. В этом примере мантисса - 010101001.
      • Наконец, вы объединяете все эти числа друг с другом. Последовательность - знак-показатель-мантисса. После соединения этих трех двоичных чисел заполните оставшуюся часть мантиссы нулями.
      • Например, преобразование 85,125 в двоичный формат IEEE 754 - это решение. 0 10000101 01010100100000000000000.