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

由浮点数x的位级表示求其整型值

由浮点数x的位级表示,得到浮点数的十进制表示,在超过32位整型数的表示范围时,返回0X80000000;在32位整型数的表示范围内时,返回强制转化为整型的值。舍入时采用向0舍入。

程序代码

typedef unsigned long int float_bits;
#define u32  unsigned long int
long int float_f2i(float_bits f);void main()
{static float_bits f1=0xc0490fdb,f2=0x40490fdb;long int xf1,xf2;xf1=float_f2i(f1);xf2=float_f2i(f2);while(1);
}
long int float_f2i(float_bits f)
{u32 sign,exp,frac;long int xli,E,i=1;//int E;float M,V;sign=f>>31;exp=f>>23&0xff;frac=f & 0x7fffff;if(exp==255)xli=0x80000000;else if(exp==0)xli=0;else {E=exp-127;M=1+frac*1.0/(i<<23);if(E<0)V=1.0/(1<<(0-E))*M;elseV=(i<<E)*M; if(sign==0){if(V>((i<<31)-1))xli=0x80000000;else xli=(long int)V;}else{V=0-V;if(V<(0-(i<<31)))xli=0x80000000;elsexli=(long int)V;}		}return xli;}

运行结果

f1=0xc0490fdb是-3.14159274的浮点型位级表示;f2=0x40490fdb是3.14159274的浮点型位级表示; xf1=0xfffffffd是-3的长整型表示;xf2=0x00000003是3的长整型表示。

http://www.xdnf.cn/news/499609.html

相关文章:

  • MySQL UPDATE 执行流程全解析
  • 【开源Agent框架】Suna架构设计深度解析与应用实践
  • Spring源码之解决循环依赖 三级缓存
  • UDP--DDR--SFP,FPGA实现之模块梳理及AXI读写DDR读写上板测试
  • 【离散化 线段树】P3740 [HAOI2014] 贴海报|普及+
  • Web安全基础:深度解析与实战指南
  • langchain—chatchat
  • 【AI】SpringAI 第二弹:基于多模型实现流式输出
  • 江协科技GPIO输入输出hal库实现
  • QT+Visual Studio 配置开发环境教程
  • Python异常模块和包
  • Oracle 高水位线(High Water Mark, HWM)
  • 自定义库模块增加自定义许可操作详细方法
  • c++动态链接库
  • 04_决策树
  • MySQL只操作同一条记录也会死锁吗?
  • 支持selenium的chrome driver更新到136.0.7103.94
  • 【Java ee初阶】HTTP(2)
  • 【MySQL】第五弹——表的CRUD进阶(三)聚合查询(上)
  • Docker数据卷
  • 深入解析Spring Boot与JUnit 5的集成测试实践
  • FTP服务搭建实战:安全文件共享解决方案
  • 使用Docker部署Nacos
  • 机器学习-人与机器生数据的区分模型测试 -数据筛选
  • 【AI论文】EnerVerse-AC:用行动条件来构想具身环境
  • stm32 DMA
  • 【八股战神篇】Java集合高频面试题
  • Redis Sentinel如何实现高可用?
  • 类加载 与 Spring容器加载
  • STM32 | 软件定时器