!! Тут доп инфа я не знаю нужна ли она в ответе!!
Любой действительный интервал содержит бесконечное множество чисел.
<aside> 💡 Любое вещественное число A может быть записано в экспоненциальной форме: $A=±m⋅q^p$, где m — мантисса числа; q — основание системы счисления; р — порядок числа. //альтернативное опрделение $(-1)^s × M × BE$, где s — знак, B-основание, E — порядок, а M — мантисса.
</aside>
Например, число 472000000 может быть представлено так:
Нормализованной формой называется форма, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно). То есть в мантиссе слева от запятой до применения порядка находится ровно один знак. В такой форме любое число (кроме 0) записывается единственным образом.
Float
Double
//Чтобы получить актуальное значение порядка нужно вычесть из него сдвиг. Сдвиг можно получить по формуле $2^{b−1}−1,$ где b — число бит, отведенное на хранение порядка (доп. инфа)
Floating-point types in C support most of the same arithmetic and relational operators
as integer types; x > y
, x / y
, x + y
all make sense when x and y are floats. If you mix two
different floating-point types together, the less-precise one will be extended to match
the precision of the more-precise one; this also works if you mix integer and floating
point types as in 2 / 3.0. Unlike integer division, floating-point division does not discard
the fractional part (although it may produce round-off
error: 2.0/3.0 gives 0.66666666666666663, which is not quite exact). Be careful about
accidentally using integer division when you mean to use floating-point division: 2/3 is 0.
Casts can be used to force floating-point division .
Some operators that work on integers will not work on floating-point types. These
are % (use modf from the math library if you really need to get a floating-point remainder)
and all of the bitwise operators ~
, <<
, >>
, &
, ^
, and |
.