浮点数在内存中的存储格式
来源:互联网 发布:西安软件新城招聘信息 编辑:程序博客网 时间:2024/06/16 16:07
细节决定成败
转自http://blog.csdn.net/bingxuewujian/article/details/6437657
由一个程序开始
- #include
<iostream> - using
namespace std; - int
main( intargc, char*argv[]) - {
-
float a //浮点数在内存中是以符号+指数+尾数保存的= 1.0f; -
cout<<(int&)a<<endl;//1.0f在内存中的保存的是0x3f800000,将a地址开始的sizeof(int)个字节当做int类型的输出106535216 -
int b = 0x3f800000; -
cout<<b<<endl;//106535216 -
cout<<(int)a<<endl;//1 -
return 0; - }
符号部分:0(粉红背景处);
指数部分:127+0=127(黄色背景处)
底数部分:0(蓝色背景处)
转换为十进制就是:106535216
--------------------------------------------------------------------------------------------------------------------------------------
浮点数包括float和double两种类型,float占32位,double占64位。其二进制存储格式遵循IEEE754标准。以float为例:
1111011.01110100101111001
首先这是一个正数,则符号位为0,
阶码为6,不过要转换成移码。
(如何求6的移码?这里我也不太深究,我见大家都是直接6+127=133,换为2进制为10000101)
(移码与补码的关系: [X]移与[X]补的关系是符号位互为相反数(仅符号位不同))
尾数则为1.11101101110100101111001的小数部分,即
11101101110100101111001
综上:123.456的二进制存储格式为:01000010111101101110100101111001
-------------------------------------------------以下介绍浮点数的存储------------------------------------------------------
浮点数:
(注意,公式中的mantissa 和 exponent使用二进制表示)
举例1:计算机存储中的二进制数如何转换成实际浮点数
举例2:浮点数转换成计算机存储格式中的二进制数。
****************************************************************
double在内存中的保存,double是8个字节64位,其中最高位63位是符号位,1表示该数为负,0正;62-52位,一共11位是指数位;51-0位,一共52位是尾数位。
举例3:按照IEEE浮点数表示法,下面将把double型浮点数38414.4转换为十六进制代码。
把整数部和小数部分开处理:整数部直接化十六进制:960E。小数的处理:
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式 .
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式
- 浮点数在内存中的存储格式(转载)
- C语言中浮点数在内存中的存储格式
- 浮点数在内存中的存储方式
- 浮点数在内存中的存储形式
- 浮点数在内存中的存储方式
- 浮点数在内存中的存储方式
- 浮点数在内存中的存储方式
- 浮点数在内存中的存储
- 短信
- Oracle业务表和视图在SuperMap中的应用
- 再谈 C# 交互窗口
- ios cell 重用问题--图片remove
- 利用JAVA中的反射机制获得某个类的信息
- 浮点数在内存中的存储格式
- @Resource和@Autowired对比
- Android快速开发框架:ThinkAndroid(附下载地址)
- Spring MVC详解(七) 注解式控制器的数据验证、类型转换及格式化(2)
- Intrepid climber (dfs+树)
- Android应用开发之使用Socket进行大文件断点上传续传
- poj-2109 Power of Cryptography
- C++对象模型——对象的差异(第一章)
- linux mkdir http://www.linuxidc.com/Linux/2011-04/35180.htm