ПреамбулаПотребовалось перевести 1/6 в IEEE 754 single precision. Обычно, перевод перекладываю на плечи компилятора, но, на этот раз, пришлось переводить вручную с использованием Windows-калькулятора из стандартного набора программ 1/6=0,16666666666666666666666666666667 0,16666666666666666666666666666667 > 0 поэтому знак=0 вычисляю степень: log2(0,16666666666666666666666666666667) = lg(0,16666666666666666666666666666667)/lg(2) = -2,584962501 округляю -2,584962501 в меньшую сторону -3 степень в смещенном виде 127-3 = 124 = 1111100 подгоняю под 8 разрядов 01111100 вычисляю мантиссу: 23 разряда -(-3) (степень)=26 (0,16666666666666666666666666666667-2-3)× 226 = 0,04166666666666666666666666666667 × 67108864 = 2796202,6666666666666666666666669 ≈ 2796203 = 1010101010101010101011 подгоняю под 23 разряда 01010101010101010101011 собираю число: знак.степень.мантисса = 0.01111100.01010101010101010101011 = 0011.1110.0010.1010.1010.1010.1010.1011 = 0x3E2AAAAB И вот тут я обратил внимание на группы повторяющихся 0 и 1. Основная частьДвоичное представление дробей вида [math]\frac{M}{2^{N}-1}[/math] без вычислений на калькуляторе, возможно, кому-то пригодится 1/3 = 0,33333333333333333333333333333333 = 0,01.01.01.01.01.01.01.01.01.01.01 2/3 = 0,66666666666666666666666666666667 = 0,10.10.10.10.10.10.10.10.10.10.10 1/6 = 0,16666666666666666666666666666667 = 0,0.01.01.01.01.01.01.01.01.01.01.01 = (1/3)/2 1/7 = 0,14285714285714285714285714285714 = 0,001.001.001.001.001.001.001.001 2/7 = 0,28571428571428571428571428571429 = 0,010.010.010.010.010.010.010.010 3/7 = 0.42857142857142857142857142857143 = 0,011.011.011.011.011.011.011.011 4/7 = 0,57142857142857142857142857142857 = 0,100.100.100.100.100.100.100.100 5/7 = 0,71428571428571428571428571428571 = 0,101.101.101.101.101.101.101.101 6/7 = 0,85714285714285714285714285714286 = 0,110.110.110.110.110.110.110.110 1/15 = 0,06666666666666666666666666666667 = 0,0001.0001.0001.0001.0001.0001.0001 2/15 = 0,13333333333333333333333333333333 = 0,0010.0010.0010.0010.0010.0010.0010 1/5 = 0,2 = 0,0011.0011.0011.0011.0011.0011.0011 = 3/15 4/15 = 0,26666666666666666666666666666667 = 0,0100.0100.0100.0100.0100.0100.0100 7/31 = 0,22580645161290322580645161290323 = 0,00111.00111.00111.00111.00111.00111