Сложно говорить о десятичных цифрах, потому что это двоичная арифметика. Чтобы объяснить это, мы можем начать с просмотра набора целых чисел в формате одинарной точности, где все целые числа представимы. Поскольку формат с одинарной точностью имеет точность 23 + 1 = 24 бита, это означает, что диапазон равен
0 to 2^24-1
Это недостаточно хорошо или недостаточно подробно для объяснения, поэтому я уточню его до
0 to 2^24-2^0 in steps of 2^0
Следующий более высокий набор -
0 to 2^25-2^1 in steps of 2^1
Следующий нижний набор -
0 to 2^23-2^-1 in steps of 2^-1
Ваше число, 1094795585 (0x41414141 в шестнадцатеричном формате), попадает в диапазон, максимум которого чуть меньше 2 ^ 31 =. Этот диапазон может быть подробно выражен как от 0 до 2 ^ 31-2 ^ 7 с шагом 2 ^ 7. Это логично, потому что 2 ^ 31 - это 7 степеней на 2 больше, чем 24. Поэтому приращения также должны быть на 7 степеней на 2 больше.
Глядя на «следующие более низкие» и «следующие более высокие» значения, упомянутые в другом посте, мы видим, что разница между ними составляет 128 i e 2 ^ 7.
В этом нет ничего странного, странного, смешного или даже волшебного. Это на самом деле абсолютно ясно и довольно просто.