C语言之32位4字节单精度整型数转IEEE754浮点型数据和64位8字节双精度整型数转IEEE754浮点型数据

32位4字节单精度整型数转IEEE754浮点型数据

c 复制代码
#include <stdio.h>
#include <stdint.h>
#include <string.h>

int main() {
    // 假设这是一个32位浮点数的十六进制表示
    uint32_t hex_array[1] = { 0x4048F5C2 };

    // 使用 union 进行类型转换
    union {
        uint32_t as_uint;
        float as_float;
    } ieee_float;

    ieee_float.as_uint = hex_array[0];

    // 打印转换后的浮点数
    float testData = ieee_float.as_float;
    printf("Converted float value: %f\n", testData);

    // 或者使用memcpy来避免类型别名问题
    float copied_float;
    memcpy(&copied_float, &hex_array, sizeof(float));

    printf("Converted float value with memcpy: %f\n", copied_float);

    return 0;
}

64位8字节双精度整型数转IEEE754浮点型数据

c 复制代码
#include <stdio.h>
#include <stdint.h>
#include <string.h>

int main() {
    // 假设这是一个64位浮点数的十六进制表示
    uint64_t hex_array[1] = { 0x400921FB54442D18ULL };

    // 使用 union 进行类型转换
    union {
        uint64_t as_ulong;
        double as_double;
    } ieee_double;

    ieee_double.as_ulong = hex_array[0];

    // 打印转换后的浮点数
    printf("Converted double value: %lf\n", ieee_double.as_double);

    // 或者使用memcpy来避免类型别名问题
    double copied_double;
    memcpy(&copied_double, &hex_array, sizeof(double));

    printf("Converted double value with memcpy: %lf\n", copied_double);

    return 0;
}
相关推荐
糖果豆豆13 分钟前
对象是字段,还是关系?集合论和范畴论吵了三十年,答案是两个都对
算法·架构
第六种自由32 分钟前
[路飞]_Leetcode 22. 括号生成
javascript·算法·leetcode
isyoungboy35 分钟前
事件驱动状态机与循环扫描状态机:两种计算模型的比较研究
算法·状态机
行者全栈架构师41 分钟前
【鸿蒙心迹】从手机到平板、折叠屏——多端适配自查清单与踩坑实录(HarmonyOS 7.x)
前端·算法·架构
longlongzihan1 小时前
LeetCode 24.两两交换链表中的节点:虚拟头结点与指针
算法·leetcode·链表
residual_fan1 小时前
基于控制感知域对抗网络的变工况故障诊断:从控制系统与运行状态协同的角度建立模型
人工智能·算法·数据挖掘·数据分析
翻山越岭的少年1 小时前
用控制信号理解状态变化:基于控制感知域对抗网络的变工况故障诊断
算法
longlongzihan1 小时前
从LeetCode 19. 删除链表的倒数第 N 个结点深入理解“哨兵节点”
c++·算法·leetcode·链表
DeroZan2 小时前
# jieba 分词 & 文本语料分析 & Python 内置函数笔记
算法
Gigavision2 小时前
CAS(ME)²数据集 感知图卷积网络算法 CAS(ME)²数据集下载
网络·算法