Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3209282
  • 博文数量: 1805
  • 博客积分: 135
  • 博客等级: 入伍新兵
  • 技术积分: 3345
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 20:01
文章分类

全部博文(1805)

文章存档

2017年(19)

2016年(80)

2015年(341)

2014年(438)

2013年(349)

2012年(332)

2011年(248)

分类: C/C++

2013-11-15 00:14:04

  1. void PrintFloat(float value)  
  2. {  
  3.     int FloatValue = *reinterpret_cast<int*>(&value);  
  4.     if(FloatValue&0x80000000)  //最高位为符号位  
  5.         cout<<"-"<
  6.     int Exp = (FloatValue>>23)&0xff; //取得指数字段,一个字节。第二到第9字节  
  7.     int MantissaPart=(FloatValue&0x7fffff)|0x800000;//尾数字段,23位加一个默认位,共24位。  
  8.   
  9.     cout<<"整数部分:"<<(MantissaPart>>(150-Exp))<//取得整数部分,24位右移小数的位数。  
  10.     int FloatPath = MantissaPart&(0xffffff>>(Exp-126));//取得小数部分  
  11.     cout<<"小数部分:"<float(1<<(150-Exp))<// 取得的整数,除以小数位数就是小数的值。  
  12.   
  13.     //cout<<(xtx  
  14. }  
对于浮点数的存储格式,可参考网页:
阅读(1186) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~