def hex_mchip_f32_to_hex_ieee_f32(src):
    """ Функция преобразования float MICROCHIP 32 to IEEE float32
        seee_eeee emmm_mmmm mmmm_mmmm mmmm_mmmm    - по стандарту
        0    1    2    3    -4   -3   -2   -1
        eeee_eeee smmm_mmmm mmmm_mmmm mmmm_mmmm - микрочиповский формат
    """
    src_list = src.split(' ')
    int_list = list('')
    for i in src_list:
        for j in i:
            int_list.append(xint_module.hex2int(j))

    # к обратному преобразованию готово
    # выделяем экспаненту
    extracted_exp = int_list[1] + int_list[0] * 16

    # мантисса
    mantissa = int_list[-1] + \
               int_list[-2] * 16 + \
               int_list[-3] * 256 + \
               int_list[-4] * 16 * 256 + \
               int_list[-5] * 256 * 256 + \
               (int_list[-6] & 7) * 16 * 256 * 256

    mantissa = float(mantissa) / m.pow(2, 23) + 1  # полсностью в скобках
    result = mantissa * m.pow(2, (extracted_exp - 127))
    if int_list[-6] & 8 != 0:
        result = -result
    return result
def hex_ieee_f32_str_to_float(src):
    """ seee_eeee emmm_mmmm mmmm_mmmm mmmm_mmmm    - по стандарту """
    src_list = src.split(' ')
    int_list = list('')
    for i in src_list:
        for j in i:
            int_list.append(xint_module.hex2int(j))

    # к обратному преобразованию готово
    extracted_exp = int_list[2] + int_list[1] * 16 + int_list[0] * 16 * 16
    extracted_exp >>= 3
    extracted_exp &= 255

    # мантисса
    mantissa = int_list[-1] + int_list[-2] * 16 + int_list[-3] * 16 * 16 + \
               int_list[-4] * 16 * 16 * 16 + \
               int_list[-5] * 16 * 16 * 16 * 16 + (int_list[-6] & 7) * 16 * 16 * 16 * 16 * 16

    mantissa = float(mantissa) / m.pow(2, 23) + 1  # полсностью в скобках
    summaryo = mantissa * m.pow(2, (extracted_exp - 127))
    if int_list[0] >= 9:
        summaryo = -summaryo
    return summaryo