Я просто не могу понять числа с фиксированной и плавающей запятой из-за того, что их трудно читать по всему Google. Но ни один из тех, что я прочитал, не дает достаточно простого объяснения того, чем они являются на самом деле. Могу я получить простое определение на примере?
numbers
computer-science
representation
user942451
источник
источник
Ответы:
Число с фиксированной запятой имеет определенное количество бит (или цифр), зарезервированных для целой части (часть слева от десятичной точки), и определенное количество битов, зарезервированных для дробной части (часть справа от десятичной точки). точка). Независимо от того, насколько велико или мало ваше число, оно всегда будет использовать одинаковое количество бит для каждой части. Например, если ваш формат с фиксированной запятой был десятичным,
IIIII.FFFFF
то наибольшее число, которое вы могли бы представить, было бы,99999.99999
а наименьшее ненулевое число было бы00000.00001
. Каждый бит кода, обрабатывающий такие числа, должен иметь встроенную информацию о том, где находится десятичная точка.Число с плавающей запятой не резервирует определенное количество бит для целой или дробной части. Вместо этого он сохраняет определенное количество бит для числа ( так называемой мантиссой или мантиссой ) и определенное количество бит , чтобы сказать , где в пределах этого числа десятичного место сидит ( так называемое показателем ). Таким образом, число с плавающей запятой, которое занимает 10 цифр с 2 цифрами, зарезервированными для экспоненты, может представлять наибольшее значение
9.9999999e+50
и наименьшее ненулевое значение0.0000001e-49
.источник
-9.9999999e+50
.00000.00001
? Я ожидаю увидеть00000.00000
вместо этого. Кроме того, есть ли у вас какие-либо ссылки, в которых подробно рассказывается о числах с фиксированной точкой?Число с фиксированной точкой просто означает, что после десятичной точки стоит фиксированное количество цифр. Число с плавающей запятой позволяет использовать различное количество цифр после десятичной запятой.
Например, если у вас есть способ хранения чисел, для которого требуется ровно четыре цифры после десятичной точки, то это фиксированная точка. Без этого ограничения это плавающая точка.
Часто, когда используется фиксированная точка, программист фактически использует целое число, а затем делает предположение, что некоторые цифры выходят за пределы десятичной точки. Например, мне может понадобиться сохранить две цифры точности, поэтому значение 100 означает фактически 1,00, 101 означает 1,01, 12345 означает 123,45 и т. Д.
Числа с плавающей запятой являются более универсальными, поскольку они могут одинаково представлять очень маленькие или очень большие числа, но есть небольшой штраф, связанный с необходимостью иметь дополнительное хранилище для места десятичной точки.
источник
Насколько я понимаю, арифметика с фиксированной точкой выполняется с использованием целых чисел. где десятичная часть хранится в фиксированном количестве бит, или число умножается на необходимое количество цифр десятичной точности.
Например, если число
12.34
необходимо сохранить, и нам нужны только две цифры точности после десятичной точки, число умножается на,100
чтобы получить1234
. При вычислении этого числа мы будем использовать этот набор правил. Добавление5620
или56.20
к этому числу даст6854
данные или68.54
.Если мы хотим вычислить десятичную часть числа с фиксированной точкой, мы используем операнд по модулю (%).
12.34 (псевдокод):
Числа с плавающей запятой - это совсем другая история в программировании. Текущий стандарт для чисел с плавающей запятой использует что-то вроде 23 бита для данных числа, 8 бит для показателя степени и 1, но для знака. См. Эту ссылку в Википедии для получения дополнительной информации об этом.
источник
Термин «фиксированная точка» относится к соответствующему способу представления чисел с фиксированным количеством цифр после, а иногда и перед десятичной точкой. При представлении с плавающей запятой размещение десятичной запятой может «плавать» относительно значащих цифр числа. Например, представление с фиксированной точкой с единым соглашением о размещении десятичной точки может представлять числа 123,45, 1234,56, 12345,67 и т. Д., Тогда как представление с плавающей запятой может дополнительно представлять 1,234567, 123456.7, 0,00001234567, 1234567000000000 и т. Д.
источник
Возьмите номер 123.456789
Плавающая точка позволяет вам представить почти каждое число с большой точностью. Исправлено менее точно, но проще для компьютера.
источник