编辑代码

#define SysRegAddr_HD_D_HM_M
#include <stdio.h>
#include <stdlib.h>

    float global_result;
    int main()
    {
        // 定义 4 个 10 进制变量并赋值
        int num1 = 139;
        int num2 = 125;
        int num3 = 187;
        int num4 = 63;

        // 将整数转换为 16 进制字符串
        char hexStr1[10];
        char hexStr2[10];
        char hexStr3[10];
        char hexStr4[10];
        sprintf ( hexStr1, "%X", num1 );
        sprintf ( hexStr2, "%X", num2 );
        sprintf ( hexStr3, "%X", num3 );
        sprintf ( hexStr4, "%X", num4 );

        // 输出转换后的 16 进制字符串
        printf ( "Hex str1: %s\n", hexStr1 );
        printf ( "Hex str2: %s\n", hexStr2 );
        printf ( "Hex str3: %s\n", hexStr3 );
        printf ( "Hex str4: %s\n", hexStr4 );
        
        //FW[10] = 0.112;  //此行输出无效,推测因为写在int main()内部,需要写在外部
        //W[12] = 2;
        //int main() 是主函数的标准形式,它的返回类型为整型 int,表示程序运行结束后返回一个整数值。

        // 将 16 进制字符串转换为整数
        long hex1 = strtol ( hexStr1, NULL, 16 );
        long hex2 = strtol ( hexStr2, NULL, 16 );
        long hex3 = strtol ( hexStr3, NULL, 16 );
        long hex4 = strtol ( hexStr4, NULL, 16 );

        // 将 4 个整数合并为一个 32 位无符号整数
        unsigned int num = ( hex4 << 24 ) | ( hex3 << 16 ) | ( hex2 << 8 ) | hex1;

        // 使用 union 类型将整数转换为浮点数
        union
        {
            unsigned int i;
            float f;

        } converter;
        converter.i = num;

        // 输出浮点数结果
        global_result = converter.f;
 printf ( "Result: %f\n", global_result );
        return 0;
    }