float
来源:互联网 发布:软件开发除web 编辑:程序博客网 时间:2024/05/21 09:56
#include <stdio.h>#include <stdlib.h>#include <math.h>int main(int argc,char *argv[]){ float f; int i; int sign; int exp; int mag; float d_mag; float f2; sscanf(argv[1],"%f",&f); //f=-0.12; i = *(int*)&f; sign = (i>>31)&0x01; exp = (i>>23)&0xFF; mag = i&0x7FFFFF; d_mag = 1.0f*mag/0x800000; f2 = (sign==0?1:-1)*(1+d_mag)*pow(2,exp-127); printf("float:f=%f\n",f); printf("sign=%X,exp=%X,mag=%X\n",sign,exp,mag); printf("float:f2=%f\n",f2); return 0;}
float一共32位,其结构定义如下:
|-------- 31 -------|------------ 30-23 ------------ |------------ 22-0 ------------|
符号位(sign) 指数部分(exp) 小数部分(mag)
sign:符号位就一位,0表示正数,1表示负数
exp: 指数部分,无符号正数
mag:小数部分,定点小数,小数点在最左边。
float的表达式 : pow(-1,sign) * (1+mag) * pow(2,exp-127)
示例程序:
- float
- float
- float
- float
- float
- float
- float
- float
- float
- float
- float
- float
- float
- Float
- float
- float
- float
- float**类型与float*
- 自己用的东西
- 5步加速你的eclipse启动
- unix环境高级编程中代码运行问题
- 在CentOS 5.3下安装配置tftp服务
- recv & send 阻塞和非阻塞(2012-06-05)
- float
- 第十六周实验报告(1)——涨工资
- BFS小结(持续更新中)
- Objective-C属性介绍
- ASCII码
- DynamicQuery一张或者多张表
- 什么是声明?什么是定义?
- iphone ios NSLog To File 到文件
- KMP算法源码