Как действительные числа представляются в компьютере?

Обновлено: 05.07.2024

Числа, представленные и сохраненные в компьютере, бывают двух основных типов: с фиксированной запятой и с плавающей запятой.

Фиксированная точка — это термин, используемый для обозначения целых чисел (числа без десятичной точки) или целых чисел. Плавающая точка — это термин, используемый для обозначения чисел, которые имеют десятичную точку. Таким образом, на компьютерах целое число 45 отличается от реального числа 45,0. Интуитивно понятные числа с фиксированной запятой используются для подсчета, а числа с плавающей запятой — для измерения.

Числа с фиксированной точкой (целые числа) и с плавающей запятой (вещественные числа) представляются с использованием двоичной системы счисления с фиксированным размером (фиксированная последовательность байтов). Для наглядности предположим, что размер слова равен 32 битам или 4 байтам.

Представление целых чисел (с фиксированной точкой)

При размере слова 32 бита первый бит используется для знака с положительным значением, представленным нулем, и отрицательным значением, представленным 1. Остальные 31 бит используются для хранения двоичного представления числа. Как мы видели в двоичной системе счисления ссылка десятичного числа 91 имеет двоичное представление 1011011. Это представление требует 7 разрядов (битов). Однако ради единообразия должны использоваться все 32 бита, что дает нам 00000000000000000000000001011011. Представление отрицательных значений, таких как -91, более сложное. Он использует метод, называемый дополнением до двух, который имеет то преимущество, что не требует отдельной схемы в АЛУ для выполнения вычитания. 32-битное представление -91 — это 11111111111111111111111110100101, которое формируется путем дополнения каждого из битовых значений в представлении +91, а затем добавления 1 к этому двоичному результату. В качестве проверки рассмотрим следующий пример, который прибавляет -91 к +91, показывая переносимые значения.

1111111111111111111111111111111 Carry
0000000000000000000000000001011011 91
+ 1111111111111111111111111110100101 -91
---------------------- -----
000000000000000000000000000000000 0

Поскольку старший бит в представлении используется для указания знака значения, у нас есть только 31 цифра для представления величины целого числа. Таким образом, наибольшее целое число, которое может быть представлено с использованием 32 битов, равно 01111111111111111111111111111111. Это преобразуется в десятичное значение 2 147 483 647. Наименьшее значение равно -2 147 483 648. По сути, наибольшее значение равно 2 31 - 1, а наименьшее значение равно -2 31 . Как правило, при размере слова N диапазон целых чисел, который может быть представлен на компьютере, составляет -2 N . 2 N - 1. Конечно, возможны и большие диапазоны, но тогда потребуется программное обеспечение, чтобы описать средства для достижения этого.

Представление действительных чисел (с плавающей запятой)

Числа с плавающей запятой хранятся в виде нормализованного показателя степени. Например, число 214,7 в экспоненциальной записи равно 0,2147 x 10 3 . 0,2147 называется мантиссом (или дробной частью), а 3 — показателем степени. Десятичное число 12,75 преобразуется в двоичное как 1100,11, поэтому в представлении экспоненты это будет 0,110011 x 2 4 , с мантиссом 110011 и показателем степени 4 (100 в двоичном формате). Чтобы представить это число в 32-битном слове, потребуется использовать один бит для знака, а оставшиеся 31 бит используются для представления мантиссы и экспоненты. Количество битов, используемых для каждой цели, может варьироваться и указывает на компромисс между точностью и диапазоном. Например, если 15 бит используются для представления мантиссы и 16 битов для экспоненты, это обеспечит большой диапазон представляемых значений (до 2·16 для экспоненты), но ограниченную точность, поскольку для представления будет доступно только 15 бит. значимость. И наоборот, точность можно повысить, используя больше битов для представления мантиссы, но это приведет к потере диапазона. В отношении действительных чисел важно отметить, что их представление и обработка на компьютерах неточны.

Стандарт IEEE для арифметики с плавающей запятой – это стандарт, в котором описаны особенности представления действительных чисел на компьютерах. В одной схеме первый бит представления указывает знак, следующие 8 битов — показатель степени, а оставшиеся 23 бита — мантиссу. Этот тип представления иногда называют одинарной точностью. Поскольку значение мантиссы ограничено 23 битами, любое значение, для которого требуется более 23 бит, не может быть точно представлено. Для точного представления большинства десятичных чисел требуется более 23 двоичных цифр, а это означает, что большинство чисел с плавающей запятой аппроксимируются на компьютере. Например, десятичное число 0,2 при преобразовании в двоичное равно 0,001100110011. с шаблоном 0011, повторяющимся вечно. Одинарная точность дает приблизительно 7 значащих цифр приближения. При выполнении арифметических операций точность результата имеет тенденцию к ухудшению.Чтобы преодолеть это ограничение, стандарт IEEE обеспечивает представление с двойной точностью, в котором для представления действительного числа используются 64 бита, один бит для знака, 11 бит для показателя степени и 52 бита для мантиссы. Это работает примерно с точностью до 16 значащих цифр. Хотя двойная точность может обеспечивать большую точность, следует понимать, что это представление также является неточным.

Числа с плавающей запятой также имеют ограничение на размер, который можно сохранить. Для одинарной точности предел составляет приблизительно от 10 -38 до 10 38 . Для двойной точности ограничение составляет примерно от 10 -308 до 10 308 .


Представление (или кодирование) числа означает выражение его в двоичной форме. Представление чисел в компьютере необходимо для того, чтобы он мог хранить их и манипулировать ими. Однако проблема в том, что математическое число может быть бесконечным, но представление числа в компьютере должно занимать заранее определенное количество битов. Таким образом, ключ заключается в возможности предопределить количество битов и то, как их интерпретировать, чтобы они могли максимально эффективно представлять фигуру. В этой статье мы обсудим представление натуральных и действительных чисел и целых чисел в компьютере.

Представление натурального числа

Натуральное число – это целое положительное число или нуль. Выбор того, сколько битов использовать, зависит от диапазона используемых чисел. Для кодирования натуральных чисел от 0 до 255 требуется всего 8 бит (байт), поскольку 2 8 = 256. Вообще говоря, n-битное кодирование можно использовать для представления натуральных чисел от 0 до 2 n -1.

Чтобы представить натуральное число, определив, сколько битов будет использоваться для его кодирования, расположите биты в двоичной ячейке, где каждый бит размещается в соответствии с его двоичным весом справа налево, затем заполните неиспользуемые биты нулями. .

Представление целого числа

Целое число – это целое число, которое может быть отрицательным. Следовательно, число должно быть закодировано таким образом, чтобы определить, положительное оно или отрицательное, и следовать правилам сложения. Хитрость заключается в использовании метода кодирования, называемого дополнением до двух.

  • Положительное целое число или ноль будут представлены в двоичном формате (с основанием 2) как натуральное число, за исключением того, что старший бит (крайний левый бит) представляет знак плюс или минус. Таким образом, для положительного целого числа или нуля этот бит должен быть установлен в 0 (что соответствует знаку плюс, поскольку 1 — это знак минус). Таким образом, если натуральное число закодировано с использованием 4 бит, максимально возможное число будет 0111 (или 7 в десятичном формате).

Как правило, наибольшее положительное целое число, закодированное с использованием n бит, будет равно 2 n-1 -1.

  • Отрицательное целое кодируется с использованием дополнения до двух.

Принцип дополнения до двух:

    • Выберите отрицательное число.
    • Возьмите его абсолютное значение (его положительный эквивалент).
    • Он представлен в базе 2 с помощью n-1 бит.
    • Каждый бит переключается с его дополнением (т. е. все нули заменяются единицами и наоборот).
    • Добавить 1.

    Обратите внимание, что при сложении числа и его дополнения до двух в результате получается 0.

    Покажем это на примере:

    Мы хотим закодировать значение -5, используя 8 бит. Для этого:

    Самый старший бит равен 1, поэтому это действительно отрицательное число.

    Если сложить 5 и -5 (00000101 и 11111011), сумма будет равна 0 (с остатком 1).

    Представление вещественного числа

    Цель состоит в том, чтобы представить число с десятичной запятой в двоичном формате (например, 101,01, которое не читается как сто одна точка ноль один, потому что на самом деле это двоичное число, то есть 5,25 в десятичном формате), используя форму 1. .XXXXX. * 2 n (в нашем примере 1,0101*2 2 ). Стандарт IEEE 754 определяет, как кодировать действительное число.

    Этот стандарт предлагает способ кодирования числа с использованием 32 битов и определяет три компонента:

    • Знак плюс/минус представлен одним битом, битом с наибольшим весом (крайним слева).
    • Показатель степени кодируется с использованием 8 бит сразу после знака.
    • Мантисса (биты после запятой) с оставшимися 23 битами.

    Таким образом, кодировка выглядит следующим образом:
    смеееееееммммммммммммммммммммммм

    • S представляет бит знака.
    • Каждый e представляет бит показателя степени.
    • Каждый m представляет бит мантиссы.

    Однако для показателей степени существуют некоторые ограничения:

    Показатель степени 11111111 запрещен.

    Однако иногда они используются для сообщения об ошибках. Эта числовая конфигурация называется NaN, что означает «не число».

    • 127 (01111111) необходимо добавить к показателю степени, чтобы преобразовать десятичное число в действительное в двоичном формате. Таким образом, показатели степени могут варьироваться от -254 до 255.

    Таким образом, формула для выражения действительных чисел:

    • S — это знаковый бит, поэтому 0 считается положительным (-1^0=1).
    • E – это показатель степени, к которому нужно добавить 127, чтобы получить закодированный эквивалент.
    • F – это дробная часть, единственная, которая выражается и прибавляется к 1 для выполнения вычислений.

    Вот пример: нужно закодировать значение 525,5.

    • 525,5 — положительное значение, поэтому первый бит будет равен 0.
    • Его представление в базе 2: 1000001101.1.
    • Нормализовав его, мы получим: 1.0000011011*2^ 9 .
    • Добавление 127 к показателю степени, равному 9, дает 136, или по основанию 2: 10001000.
    • Мантисса состоит из десятичной части числа 525,5 в нормализованном основании 2, что равно 0000011011.
    • Поскольку мантисса должна занимать 23 бита, для ее завершения необходимо добавить нули:

    0 1000 1000 00000110110000000000000
    0100 0100 0000 0011 0110 0000 0000 0000 (4403600 в шестнадцатеричном формате)

    Вот еще один пример, на этот раз с использованием отрицательного действительного числа: нужно закодировать значение -0,625.

    • Бит s равен 1, так как 0,625 является отрицательным.
    • 0,625 записывается по основанию 2 следующим образом: 0,101.
    • Мы хотим записать его в виде 1,01 x 2-1.
    • Следовательно, показатель степени равен 1 111 110, поскольку 127 - 1 = 126 (или 1 111 110 в двоичном формате).
    • Мантисса равна 01000000000000000000000 (представлены только цифры после запятой, так как целое число всегда равно 1).
    • Двоичное представление числа 0,625 в соответствии со стандартом IEEE 754:

    1 1111 1110 01000000000000000000000
    1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 в шестнадцатеричном формате)

    Я понимаю, что современный цифровой компьютер работает в двоичной системе счисления. Я также могу получить, что двоичное представление может быть преобразовано в рациональные числа.

    Но я хочу знать, как современные вычислительные модели интерпретируют реальные числа.

    Например:

    Ежедневно мы видим, что компьютер может строить графики. Но здесь графы могут быть непрерывными объектами. Какова математическая основа, которая преобразует дискретную (или, самое большее, счетную) двоичную систему во что-то математически непрерывное, например, график $f(x) = x$ .

    $\begingroup$ Помимо аппроксимаций с плавающей запятой, существуют системы, которые рассматривают вещественные числа как математические объекты, в первую очередь системы компьютерной алгебры и средства доказательства теорем. Представление определенного действительного числа «непосредственно» (для определенной интерпретации «непосредственно») ограничено вычислимыми числами. $\endgroup$

    $\begingroup$ Я не совсем понимаю, о чем вы пытаетесь спросить. Это нормально, что вы не поставили галочку ни перед одним из ответов, но, поскольку вы не четко написали вопрос и не получили ответ, который решил вашу проблему и показал, что он решил вашу проблему, я не уверен, что вы пытаетесь спросить. Вы имеете в виду что-то вроде «Как компьютер записывает формальное доказательство в ZF утверждения обо всех действительных числах, когда некоторые действительные числа он не может хранить достаточно информации для полного описания? Если компьютер — это физическое устройство, которое следует простым законам, то как может ли это быть похоже на человеческий мозг $\endgroup$

    $\begingroup$, который может проявить творческое мышление и начать новые математические исследования? Человеческий мозг может думать об утверждении, что все утверждения, доказуемые в формальной системе арифметики Пеано, истинны, и думать о его доказательстве, но сама формальная система арифметики Пеано не может даже описать это утверждение, не говоря уже о его доказательстве. Может ли объяснение заключаться в том, что, хотя человеческий мозг следует простым законам и когда человек говорит, что это утверждение очевидно верно, на самом деле это всего лишь результат того, что мозг следует этим законам и заставляет вас произносить это предложение, на самом деле это предложение представляет собой реальное утверждение? \endgroup$

    2 ответа 2

    Они представляют собой непрерывные величины с дискретными приближениями. В основном это делается с плавающей запятой, что аналогично научной нотации. По сути, они работают с чем-то вроде $1.xyz\times 10^k$ с соответствующим количеством знаков после запятой (и в двоичном, а не в десятичном виде).

    С некоторыми иррациональными числами также можно работать напрямую. Например, вы можете создать себе объект с именем " $\sqrt$ ", особо не беспокоясь о том, что это такое, за исключением того, что он подчиняется обычным арифметическим правилам и что $(\sqrt)^2=2$ . Таким образом, вы можете точно вычислить $$(\sqrt-1)(\sqrt+1) = (\sqrt)^2 + \sqrt - \sqrt - 1 = 2 - 1 = 1$$ как алгебраический факт, который не подвержен ошибкам округления.

    Обратите внимание, что если вы строите график на экране, независимо от того, насколько сильно вы увеличиваете масштаб, вы строите его в виде дискретных пикселей, поэтому использование соответствующего количества значащих цифр в основном дает вам все, что вам нужно.

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

    • Компьютеры используют экспоненциальное представление для чисел с плавающей запятой.
    • Размер машины определяет точность
    • Двоичный шаблон представляет собой группу битов для знака, экспоненты и мантиссы (или мантиссы).
    • Повторяющиеся шаблоны округлены.
    • Может произойти сближение

    Учебные заметки

    Нецелые числа бывают разных форматов.

    • 5.4920873E+3
    • 1000085.3333333
    • -12001 * 10-2
    • И т. д.

    Mapping System Walkthrough

    Что составляет нецелое число? Дробное.

    Как мы называем эти нецелые числа? Плавающая точка.

    С бесконечным набором чисел, как мы можем представить данные с плавающей запятой? Нам нужна карта!

    Как и в случае с целыми числами со знаком, нам нужна карта для представления чисел с плавающей запятой.

    • определить знак
    • удалите десятичную точку, чтобы преобразовать число в целое
    • зафиксировать положение десятичной точки

    Пошаговое руководство по картографической системе

    Какие различные элементы нам необходимо учитывать в нашей новой карте представления?

    1. дробная часть
    2. целое число
    3. десятичная точка (или точка счисления)
    4. подписать

    Но подождите. Мы что-то упускаем. Что еще нам нужно учитывать?

    Подумайте обо всех различных комбинациях чисел. Как мы видели с отрицательными целыми числами, величина или размер числа определяется диапазоном битов. С числами с плавающей запятой мы также должны помнить о точности. Вскоре мы поговорим о точности. А пока я просто хочу, чтобы вы сохранили это в базе данных вашего разума.

    Чтобы разработать новое отображение для представления чисел с плавающей запятой, проведите со мной мысленный эксперимент.

    Допустим, мы идентифицируем знак одним битом.

    А что, если мы удалим десятичную точку? Этот шаг преобразует число в целое число. А пока допустим, что в нашей новой системе отображения есть n битов.

    Наконец, нам нужно запомнить и зафиксировать исходное положение десятичной точки. Верно? Допустим, у нас есть другой набор битов для представления этой позиции десятичной точки.

    Пошаговое руководство по картографической системе

    Давайте рассмотрим, как мы можем реализовать нашу новую систему сопоставления.

    Шаг 1:

    Удалите десятичную точку и запомните, где она находилась изначально.

    Вы помните, как в школе вы шли по десятичной дроби влево или вправо? Чтобы преобразовать -4875,125 в целое число, нам нужно, чтобы оно было -4875125. В каком направлении тогда мы идем по десятичной точке? Я надеюсь, вы сказали направо, так как нам нужно, чтобы это было целое число. Если бы мы пошли влево, то это было бы еще меньшее число, и у него все еще была бы эта десятичная точка внутри самого числа.

    Не забывайте считать позиции, когда вы идете вправо. 1, 2, 3. Следовательно, мы можем сказать, что десятичная точка имеет позицию, равную трем.

    Шаг 2:

    Далее нам нужно зафиксировать эту позицию и представить ее.

    Давайте воспользуемся заглавной буквой E, чтобы обозначить, что это позиция десятичной точки. Затем вы хотите отметить позицию, которая равна 3, и направление. При движении вправо это отрицательное направление.

    Вот наш новый сопоставленный номер.

    Вас интересует буква E и приподнятое обозначение -3? Давайте обсудим это.

    Нам нужно 4875125, но мы также хотим зафиксировать положение десятичной точки. Правильный? Какое выражение будет представлять шаги, которые мы только что сделали? Подумайте еще раз о нашей системе позиций.

    Поскольку мы переместили десятичную запятую на три позиции вправо, подумайте, какое десятичное число можно умножить на новое целое число, чтобы получить исходное число с плавающей запятой. Другими словами, -4875,125 = -4875125 x d, где d - число десятичной точки. Мы передвинули запятую на три знака вправо. Следовательно, d равно 0,001.

    Теперь посмотрите на позиционное обозначение на изображении выше. Обратите внимание на 0,001 оранжевого цвета. Что такое эквивалент базы 10? 10 -3 . Мы можем использовать это значение вместо 0,001, так как они оба представляют одно и то же значение.

    В нашем новом представлении 10 -3 выражается с помощью заглавной буквы E -3 , где E означает показатель степени.

    Что такое сопоставление?

    Прохождение системы картографирования для реальных чисел

    На 32-разрядной машине числа с плавающей запятой представляются путем сопоставления 32-разрядных значений следующим образом:

    1. 1 бит (бит 32) предназначен для знака, где 0 – положительный, 1 – отрицательный
    2. 8 бит (биты 30–23) предназначены для показателя степени, который содержит позицию десятичной точки.
    3. 23 бита (биты 22–0) предназначены для целого числа.

    Целое число называется мантисса или мантисса.

    А как насчет точности, то есть точности с плавающей запятой?

    Говорят, что эта система имеет 24-битную точность. Хм? На самом деле мантиссы составляют 24 бита, когда вы выполняете преобразование по формуле (что выходит за рамки того, что мы здесь обсуждаем). Однако 24-й бит всегда равен 1. Следовательно, компьютер предполагает, что это 1 и он не сохраняется. При этом нам нужно хранить только 23 бита для мантиссы.

    Это сопоставление также известно как одинарная точность с плавающей запятой.

    Справочные ссылки:

    Когда вы в последний раз вставали со стула и потягивались? Просто говорю…

    meeeeeee-owwww

    Очень большие или очень маленькие десятичные числа часто записываются в стандартной форме. Это явно экономит запись большого количества цифр. Стандартная форма — это число от 1 до 10, умноженное на степень 10.

    5,67 х 103 = 5,67 х 1000 = 5 670
    6,23 х 10-2 = 6,23 х 0,01 = 0,0623

    Чтобы преобразовать десятичное число в стандартную форму, переместите десятичную запятую так, чтобы число находилось в диапазоне от 1 до 10. Степень 10 – это количество знаков, на которое десятичная запятая была перемещена, положительное значение, если оно сдвинуто влево, и отрицательное, если перемещено вправо.

    Действительные числа хранятся в компьютере по тому же принципу, что и стандартная форма. Однако вместо использования степени 10 они сохраняются с использованием степени 2. Десятичная часть числа известна как мантисса, а степень 2, в которую она возведена, называется показателем степени. Для простоты в приведенных примерах будем использовать 16 бит. На практике действительные числа хранятся с использованием как минимум 32 бит. Чем больше количество битов для мантиссы, тем выше точность, с которой число может быть сохранено. Чем больше количество битов для показателя степени, тем больше диапазон числа.

    Наши 16-битные числа будут использовать 10 бит для мантиссы и 6 бит для экспоненты.

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

    Преобразование абсолютного значения десятичного числа в двоичное с фиксированной точкой.110,1
    Переместите двоичную точку так, чтобы первая цифра была отличной от нуля..1101 (3 разряда влево)
    Замените двоичную поставить точку нулем, дополнить правую часть числа нулями, чтобы число состояло из 10 цифр.0110100000
    Если исходное число было отрицательный, преобразуйте его в форму дополнения до двух. Получается мантисса.0110100000
    Преобразовать количество позиций, на которые переместилась двоичная точка, в 6-битное двоичное число. 000011
    Если точка была перемещена вправо, преобразовать число в форму дополнения до двух. Получается показатель степени.000011
    Все число с плавающей запятой — это мантисса, за которой следует показатель степени.0110100000000011
    Преобразование абсолютного значения десятичного числа в двоичное с фиксированной точкой.0,001
    Переместите двоичную точку так, чтобы первая цифра была отличной от нуля..1 (перемещено на 2 позиции вправо)
    Замените двоичную точку с нулем, дополните правую часть числа нулями, чтобы число состояло из 10 цифр.0100000000
    Если исходное число был отрицательным, преобразуйте его в форму дополнения до двух. Получается мантисса.0100000000
    Преобразовать количество позиций, на которые переместилась двоичная точка, в 6-битное двоичное число. 000010
    Если точка была перемещена вправо, преобразовать число в форму дополнения до двух. Получается показатель степени.111110
    Все число с плавающей запятой — это мантисса, за которой следует показатель степени.0100000000111110

    -0,1875

    Преобразование абсолютного значения десятичного числа в двоичное с фиксированной точкой.101010.11
    Переместите двоичную точку так, чтобы первая цифра была отличной от нуля..10101011 (перемещено на 6 позиций влево)
    Замените двоичную точку с нулем, дополните правую часть числа нулями, чтобы число состояло из 10 цифр.0101010110
    Если исходное число был отрицательным, преобразуйте его в форму дополнения до двух. Получается мантисса.1010101010
    Преобразовать количество позиций, на которые переместилась двоичная точка, в 6-битное двоичное число.000110
    Если точка была перемещена вправо, преобразовать число в форму дополнения до двух. Получается показатель степени.000110
    Все число с плавающей запятой представляет собой мантиссу, за которой следует показатель степени.1010101010000110

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

    0100010000000011

    Преобразование абсолютного значения десятичного числа в двоичное с фиксированной точкой.0,0011
    Переместите двоичную точку так, чтобы первая цифра была отличной от нуля..11 (перемещено на 2 позиции вправо)
    Замените двоичную точку с нулем, дополнить правую часть числа нулями, чтобы число состояло из 10 цифр.0110000000
    Если исходное число был отрицательным, преобразуйте его в форму дополнения до двух. Получается мантисса.1010000000
    Преобразовать количество позиций, на которые переместилась двоичная точка, в 6-битное двоичное число. 000010
    Если точка была перемещена вправо, преобразовать число в форму дополнения до двух. Получается показатель степени.111110
    Все число с плавающей запятой — это мантисса, за которой следует показатель степени.1010000000111110
    < tr>
    Преобразование степени числа в десятичную. Выполните дополнение до двух, если показатель степени начинается с 1.000011 = 3
    Если мантисса была отрицательной, выполните дополнение до двух, чтобы преобразовать в положительное число. .0100010000
    Замените первый ноль двоичной точкой..100010000
    Переместить двоичную точку на количество позиций, указанное показателем степени (вправо, если показатель степени положительный, и налево, если отрицательный).100.010000
    Преобразование двоичного числа с фиксированной запятой в десятичное число. Не забудьте добавить отрицательный знак, если мантисса была отрицательной.4.25

    0111000000111110

    Преобразование степени числа в десятичную. Выполните дополнение до двух, если показатель степени начинается с 1.111110 = -2
    Если мантисса была отрицательной, выполните дополнение до двух, чтобы преобразовать в положительное число.0111000000
    Замените первый ноль двоичной точкой..111000000
    Переместить двоичную точку на количество позиций, указанное показателем степени (вправо, если показатель степени положительный, и налево, если отрицательный)..00111000000
    Преобразовать двоичное число с фиксированной точкой в ​​десятичное число. Не забудьте добавить отрицательный знак, если мантисса была отрицательной.0,21875

    1001111110000111

    < tr>
    Преобразование степени числа в десятичную. Выполните дополнение до двух, если показатель степени начинается с 1.000111 = 7
    Если мантисса была отрицательной, выполните дополнение до двух, чтобы преобразовать в положительное число. .0110000010
    Замените первый ноль двоичной точкой..110000010
    Переместить двоичную точку на число позиций, указанное показателем степени (вправо, если показатель степени положительный, и налево, если отрицательный).1100000,1
    Преобразование двоичного числа с фиксированной запятой в десятичное число. Не забудьте добавить отрицательный знак, если мантисса была отрицательной.-96,5

    Стандарт IEEE для операций с плавающей запятой

    В этой системе для представления числа используются 32 бита. Битовый шаблон немного отличается от формата Two Complement. Слева битовый шаблон представляет,

    1 — бит знака
    8 — показатель степени сохраняется в режиме избытка 127 (127 добавляется к показателю степени перед его сохранением;
    23 — мантисса (ведущий 1-бит подразумевается с двоичной точкой это

    Формат мини-поплавка

    Формат Minifloat представляет собой 16-битное представление действительных чисел. Он использует знаковый бит, 5-битную экспоненту из 15 режимов, 10 бит мантиссы с подразумеваемым начальным 1 битом и двоичную точку.

    Нормализация чисел с плавающей запятой

    Точность

    Точность числа с плавающей запятой зависит от количества битов, используемых для представления мантиссы. Чтобы проиллюстрировать это, рассмотрим следующее десятичное число,

    Мы можем выразить это в стандартной форме как 0,42012 x 10 8, используя 5 цифр для мантиссы. Если мы используем только 4 цифры для мантиссы, мы получаем 0,4201 x 10 8 и теряем некоторую точность.

    Если мы поместим десятичную точку в другом месте, скажем, .042012 x 10 9 , нам понадобится больше цифр для мантиссы. Системы представления чисел должны обеспечивать максимальную точность для заданного количества хранимых цифр.

    Чтобы это произошло, числа с плавающей запятой нормализуются.

    Пример 1

    Поместите 0000100000000110 в нормализованную форму.

    0000100000000110 = .000100000 x 2 6

    Чтобы нормализовать число, десятичная точка должна быть перемещена перед первым ненулевым битом. Если десятичная точка переместится на n позиций вправо, то степень числа 2 уменьшится на n.

    .000100000 x 2 6 = .100000 x 2 3 = 01000000000000011

    Пример 2

    Поместите 1110111000000011 в нормализованную форму.

    1110111000000011 = -.00100100 x 2 3

    -.00100100 x 2 3 = -.100100 x 2 1

    -.100100 x 2 1 = -0100100000000001

    -0100100000000001 = 1011100000000001

    Ключевые факты

    Нормализованные числа всегда начинаются с двух разных битов (01 — положительный, 10 — отрицательный). Мантисса положительного числа всегда находится между 0,5 и 1, а мантисса отрицательного числа всегда находится между -0,5 и -1

    Читайте также: