当前位置: 首页 > article >正文

QT IEEE754 16进制浮点数据转成10进制

        IEEE754标准转换QT代码
qtcreator使用的ieee754标准的4字节数组与浮点数之间的转换方法,ieee754的4位数组如果转换成二进制后,大体结构是:

位序号12-910-32
意义

符号位,

正数为0,负数为1.

指数位,

指数是2进制的指数,其中127代表指数0,可以表示指数范围±127.

小数部分,

后面10位到32位代表有效数字的小数部分xxxxxx,实际有效值就是1.xxxxxx,在作用相应指数。


QT转换代码:

class IEEE754   //ieee754标准四字节数值与浮点数相互转换;
{
public:
    static double toFloat(QString list)   //数组转浮点数
    {  list=list.replace(" ","");
         if(list.length()!=8) { return 0;}
         bool ok;
         long sign= list.left(1).toLong(&ok,16)>>3;
         long Zsh=(list.left(3).toLong(&ok,16)  & 0x7F8)>>3;
         long Wsh=list.right(6).toLong(&ok,16)+0x800000;
         double ren=pow(-1,sign)*double(Wsh)*pow(2,(Zsh-150));
         return ren;
       //  return QString::number(ren,'f',2 );
    }
    static QString toList(double value)  //浮点数转数组
    {   int sign;QString S;double v;
        if((value)==0){return "00000000" ; }else if((value)>0){sign=0;v=value; } else {
            sign=1;v=-value;}
        long zhishu=0;
        long weishu=0;
        if(v<1){ while(v<1){v=v*2;zhishu--; }    }
        else { while(v>=2){v=v/2;zhishu++; }
        zhishu = zhishu + 127;
        v=v-1;
        weishu=v*pow(2,23);
        weishu=weishu+(zhishu%2)*0x800000;
        zhishu=zhishu/2+sign*0x80;
        S=QString::number(zhishu,16)+QString::number(weishu,16);

        }
        return S.toUpper();
    }
};


http://www.kler.cn/news/359322.html

相关文章:

  • JavaScript 中的防抖和节流(简易版)
  • 【人工智能-初级】第6章 决策树和随机森林:浅显易懂的介绍及Python实践
  • 信雅纳Chimera 100G网络损伤仪助力Parallel Wireless开展5G RAN无线前传网络的损伤模拟
  • 【论文学习与撰写】论文里的Mathtype公式复制粘贴,跨文档复制后错码/错位问题的解决
  • 设计模式,面试级别的详解(持续更新中)
  • EMC VNX2代产品base module的更换
  • 从0到1构建webpack多页面多环境应用
  • 前端求职简历-待补充
  • 代码随想录算法训练营第六十二天| prim算法,kruskal算法
  • Shell编程-函数
  • Git 总结
  • 软件开发----设计模式每日刷题(转载于牛客)
  • 测试教程分享
  • 二层交换机的工作原理与局域网设备通信详解
  • 把其他.ui文件拿到我的工程中使用
  • 100多种【基于YOLOv8/v10/v11的目标检测系统】目录(python+pyside6界面+系统源码+可训练的数据集+也完成的训练模型)
  • 每天练打字7:今日状况——常用字后五百击键3.5第2遍进行中,赛文速度95.65
  • 【截流软件】采集短视频关键词笔记下的筛选评论
  • 一文了解供应链攻击
  • GitHub每日最火火火项目(10.21)