int类型定义,float、double类型引用造成的结果
来源:互联网 发布:网络教育如何考试 编辑:程序博客网 时间:2024/05/22 02:09
测试程序:
//main.cint x = 0x1234;int y = 0x2345;int t = 0x3456;int k = 0x4567;void int2double();int main(){int2double();printf("x:0x%x, y:0x%x, t:0x%x,k:0x%k\n", x, y , t, k);return 0;}
//int2double.cdouble x;float t;void int2double(){x = -0.0;x = -8.25; //8.25 = 1000.01bx = -0.25;//0.25 = 0.01b;t = 0.0;t = 8.25;t = 0.25;}
8.25用二进制数表示为:1000.01,用科学计数法表示为: 1.00001 * 2^3。
所以根据IEEE标准,float类型-8.25在内存中的存储为:
符号位-----指数(8位)-----尾数
1-----------127+3--------00001==0xc104 0000
根据IEEE标准,浮点数的指数部分要加上基127,尾数部分只取科学计数法的小数部分即可。
所以根据IEEE标准,double类型-8.25在内存中的存储为:
符号位------指数(11位)------尾数
1-----------1023+3----------00001== 0xc020 8000 0000 0000
根据IEEE标准,浮点数的指数部分要加上基1023,尾数部分只取科学计数法的小数部分即可。
0.25用二进制数表示为:0.01,用科学计数法表示为: 1.0 * 2^(-2)。
所以根据IEEE标准,float类型-0.25在内存中的存储为:
符号位--------指数(8位)-----------尾数
1-------------127-2----------------0 == 0xbe80 0000;
double类型-0.25在内存中的存储为:
符号位--------指数(11位)----------尾数
1-------------1023-2---------------0== 0xbfd0 0000 0000 0000;
那么问题就来了,float类型的0.0在内存中怎么存储?
难道是下面这样吗?
符号位------指数-------- 尾数
0----------127+0---------0 == 0x7f80 0000
其实不是的,0.0在内存中的存储就是0;
计算机不会按照float类型去存储0.0,而是按照整数类型的0存储的。
- int类型定义,float、double类型引用造成的结果
- Int,long,float,double类型
- [Java][细节](int)n的执行结果,其中n为float或double类型
- ACM_1045_读取float类型,定义double类型
- String与int float double 类型之间的转换
- 提高double /float 强转为int类型的速度
- int long longlong float double类型数据的范围
- 字符串转为float,int,double类型
- double float 类型的输出
- C++中将string类型转换为int, float, double类型
- C++中将string类型转换为int, float, double类型
- C++中将string类型转换为int, float, double类型
- C++中将string类型转换为int, float, double类型
- string类型转换为int, float, double类型、随机数生成
- mysql float double 类型
- mysql float double 类型
- mysql float double 类型
- mysql float double 类型
- uboot 启动流程
- hadoop-2.2.0追加日志记录
- 内存泄漏以及常见的解决方法
- bash之通配符
- C++this指针详解
- int类型定义,float、double类型引用造成的结果
- 编程学习第三天,更多的Python
- C++开源代码项目汇总
- Android ScrollView如何判断上下滑的方向
- spark读取kafka数据 createStream和createDirectStream的区别
- mongdb 基本概念
- 使用SD卡扩展BBB文件系统存储空间
- 类的基本定义
- Storm新特性之Flux