Float32与Float16转换

摘要:
参考https://stackoverflow.com/questions/3026441/float32-to-float16#include&lt ; csdio>#包括<cstrest>使用namespacestd;使用float16_ t=uint16_ t;结构Floa16{float16_t_value;Floa16(float16_tv

 参考https://stackoverflow.com/questions/3026441/float32-to-float16

#include <cstdio>
#include <cstdint>

using namespace std;

using float16_t = uint16_t;

struct Float16
{
    float16_t _value;
    Float16(float16_t value)
    {
        _value = value;
    }
    Float16(float value)
    {
        uint32_t m = *(uint32_t *)&value;
        _value = ((m & 0x7fffffff) >> 13) - (0x38000000 >> 13);
        _value |= ((m & 0x80000000) >> 16);
    }
    operator float16_t ()
    {
        return _value;
    }
    operator float ()
    {
        uint32_t m = _value;
        m = ((m & 0x7fff) << 13) + 0x38000000;
        m |= ((_value & 0x8000) << 16);
        return *(float *)&m;
    }
};

免责声明:文章转载自《Float32与Float16转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇abp vnext2.0核心组件之模块加载组件源码解析微服务-使用Redis实现分布式缓存下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

tabsSwiper 全屏选项卡(uniapp-uView)

完整代码˂swiper:current="swiperCurrent"@transitio...

win10 优化批处理

@ECHOoffECHO关闭自动修复bcdedit/setrecoveryenabledNOecho完成ECHO关闭WindowsDefenderregadd“HKEY_LOCAL_MACHINESOFTWARE策略MicrosoftWindowsDefender”/v“DisableAntiSpyware”/d1/tReG_ DWORD/fcho完成ECH...

Ubuntu 下查看CPU 信息命令

看看带有“处理器”一词的行数,即逻辑CPU的数量。因此,您可以在cmd下输入以下命令:cat/proc/cpuinfo|greproprocessor|wc-l因此,C++程序自然会想到使用strstr函数来查找processor关键字的出现次数。...

国产操作系统——银河麒麟V10 SP1使用小结

几天前,我看了国内操作系统Galaxy Kirin有了新更新的新闻,于是我开始了一个新系统=============================================个人评价:这个系统是一个国产操作系统。尽管使用了大量的Ubuntu和Windows设计,使用了Linux内核,但这是国产操作系统从无到有的开始,其意义和价值远远大于其使用价值。总之...

linux下ifconfig, DNS以及route配置

Linux基本网络配置命令1.ifconfig查看网络接口信息。普通用户使用的ifconfig的完整路径:/sbin/ifconfigifconfig网络接口名称:显示指定接口的详细信息。...

如何在Android模拟器上安装apk文件

如本实例的“mishop_2.0.20130911_1.1.1.apk”3.执行控制台命令,进行安装。切换到D盘,输入D:,然后点击Enter,即切换到D盘,输入cd,找到platform-tools的文件地址,即adb.exe的文件路径。,粘贴在控制台中。...