《计算机导论 Introduction to Computer Science》课程配套教材教学资源(参考资料)浮点数在内存中的表示

浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的!无论是整数、实 数(浮点数)、还是正负数等。 则在Intel CPU架构的系统中,存放方式以小端模式(Little Endian. 即低字节存在低地址中,每个存储单元存储一个字节)。但是对于浮 点数在内存是如何存储的?目前所有的C/C+编译器都是采用EEE 所制定的标准浮点格式,即二进制科学表示法。 在二进制科学表示法中,S=M2N主要由三部分构成:符号位 +阶码N+尾数M。对于loat型数据,其二进制有32位,其中符号 位1位,阶码8位,尾数23位:对于double型数据,其二进制为64 位,符号位1位,阶码11位,尾数52位。 Float类型数据在内存中的存储格式: 内存存储单元 高地址4 低地址1 1bit符号位 阶码8bits 23bits尾数 Double类型数据在内存中的存储格式: 内存存储单元 高地址8 低地址1 1bit符号位 阶码11bits 52bits尾数 阶码:采用移码表示,对于oat型数据其规定偏置量为127,阶码有 正有负,对于8位二进制,则其表示范围为-128-127,double型规定
浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的!无论是整数、实 数(浮点数)、还是正负数等。 则在 Intel CPU 架构的系统中,存放方式以小端模式(Little Endian, 即低字节存在低地址中,每个存储单元存储一个字节)。但是对于浮 点数在内存是如何存储的?目前所有的 C/C++编译器都是采用 IEEE 所制定的标准浮点格式,即二进制科学表示法。 在二进制科学表示法中,S=M*2^N 主要由三部分构成:符号位 +阶码(N)+尾数(M)。对于 float 型数据,其二进制有 32 位,其中符号 位 1 位,阶码 8 位,尾数 23 位;对于 double 型数据,其二进制为 64 位,符号位 1 位,阶码 11 位,尾数 52 位。 Float 类型数据在内存中的存储格式: 内存存储单元 高地址 4 低地址 1 1bit 符号位 阶码 8bits 23bits 尾数 Double 类型数据在内存中的存储格式: 内存存储单元 高地址8 低地址 1 1bit 符号位 阶码 11bits 52bits 尾数 阶码:采用移码表示,对于 float 型数据其规定偏置量为 127,阶码有 正有负,对于 8 位二进制,则其表示范围为-128-127,double 型规定

为1023,其表示范围为-1024-1023。比如对于foat型数据,1例如, 阶码的真实值为2,则加上127后为129,其阶码表示形式为10000001。 尾数:有效数字位,即部分二进制位(小数点后面的二进制位),因为规 定M的整数部分恒为1,所以这个1就不进行存储了。 举例说明:float型数据125.5转换为标准浮点格式 将125.5转换为二进制形式,表示为1111101.1,由于规定尾数的整 数部分恒为1,则表示为1.1111011*26,阶码为6,加上127为133, 则表示为10000101,而对于尾数将整数部分1去掉,为1111011,在 其后面补0使其位数达到23位,则为11110110000000000000000 则其二进制表示形式为 11000010111110110000000000000000, 则在内存中以字节(1个存 储单元)为单位的存储形式为: 高地址 在内存存储单元中的存储形式 低地址 01000010 1111011 00000000 00000000 以标准C语言编程输出为: 5(负数,补码形式) 0 0 由上分析可知,oat型数据最大表示范围为 1.111111111111111111▣*2127=3.4*1038 对于double型数据情况类似,只不过其阶码为11位,偏置量为1023, 尾数为52位。 测试程序: /*测试浮点型数据在内存中存放方式*/
为 1023,其表示范围为-1024-1023。比如对于 float 型数据,l 例如, 阶码的真实值为2,则加上127后为129,其阶码表示形式为1000 0001。 尾数:有效数字位,即部分二进制位(小数点后面的二进制位),因为规 定 M 的整数部分恒为 1,所以这个 1 就不进行存储了。 举例说明:float 型数据 125.5 转换为标准浮点格式 将 125.5 转换为二进制形式,表示为 1111101.1,由于规定尾数的整 数部分恒为 1,则表示为 1.1111011*2^6,阶码为 6,加上 127 为 133, 则表示为 10000101,而对于尾数将整数部分 1 去掉,为 1111011,在 其后面补 0 使其位数达到 23 位,则为 11110110000000000000000 则其二进制表示形式为 0 10000101 11110110000000000000000,则在内存中以字节(1 个存 储单元)为单位的存储形式为: 高地址 在内存存储单元中的存储形式 低地址 0100 0010 1111 1011 0000 0000 0000 0000 以标准 C 语言编程输出为: 66 -5(负数,补码形式) 0 0 由上分析可知,float 型数据最大表示范围为 1.11111111111111111111111*2^127=3.4*10^38 对于 double 型数据情况类似,只不过其阶码为 11 位,偏置量为1023, 尾数为 52 位。 测试程序: /*测试浮点型数据在内存中存放方式*/

#include int main(int argc,char *argv) { float a=125.5: char *p=(char *)&a: printf("%d\n",*p); printf("%dn",*(p+l)月 printf("%dn",*(p+2)月 printf("%od\n",*(p+3)); return0; 运行输出结果为: 0 0 -5 66
#include int main(int argc, char *argv[]) { float a=125.5; char *p=(char *)&a; printf("%d\n",*p); printf("%d\n",*(p+1)); printf("%d\n",*(p+2)); printf("%d\n",*(p+3)); return 0; } 运行输出结果为: 0 0 -5 66
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第9章 计算机学科方法论.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第8章 计算机领域的典型问题.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第7章 计算机系统安全知识.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第6章 软件开发知识.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第5章 程序设计知识.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第4章 操作系统与网络知识.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第3章 计算机基础知识.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第2章 计算机专业知识体系.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第1章 计算机发展简史.ppt
- 哈尔滨工程大学:《现代密码学 Modern Cryptography》课程教学资源(课件讲稿)第10章 密钥管理技术.pdf
- 哈尔滨工程大学:《现代密码学 Modern Cryptography》课程教学资源(课件讲稿)第8章 数字签名技术.pdf
- 哈尔滨工程大学:《现代密码学 Modern Cryptography》课程教学资源(课件讲稿)第7章 公钥密码体制.pdf
- 安徽理工大学:《现代密码学 Modern Cryptography》课程教学资源(课件讲稿)第6章 HASH与消息认证码(散列函数与消息认证码).pdf
- 哈尔滨工程大学:《现代密码学 Modern Cryptography》课程教学资源(课件讲稿)第5章 序列密码(主讲:马春光).pdf
- 安徽理工大学:《现代密码学 Modern Cryptography》课程教学资源(课件讲稿)第4章 分组密码.pdf
- 哈尔滨工程大学:《现代密码学 Modern Cryptography》课程教学资源(课件讲稿)第3章 古典密码体制.pdf
- 安徽理工大学:《现代密码学 Modern Cryptography》课程教学资源(PPT课件讲稿)第2章 密码学基础 2.1 密码学分类.pptx
- 安徽理工大学:《现代密码学 Modern Cryptography》课程教学资源(PPT课件讲稿)第1章 密码学概论.pptx
- 安徽理工大学:《现代密码学 Modern Cryptography》课程教学资源(PPT课件讲稿)导入内容 Intro.pptx
- 安徽理工大学:《现代密码学 Modern Cryptography》课程教学资源(实验大纲).pdf
- 《计算机导论 Introduction to Computer Science》课程配套教材教学资源(参考资料)C语言中int型变量表示的数的范围.docx
- 《计算机导论 Introduction to Computer Science》课程配套教材教学资源(参考资料)负数在计算机中的存储和计算形式.docx
- 安徽理工大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)Security Situation(2019).pptx
- 《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)2020年上半年我国互联网网络安全监测数据分析报告.pdf
- 安徽理工大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)Preliminary knowledge.pptx
- 哈尔滨工程大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)传统密码技术 Classical cryptography.pdf
- 安徽理工大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)利用重合指数法破解Virginia加密 Breaking Virginia Encryption.pptx
- 哈尔滨工程大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)分组密码 Block Cipher.pdf
- 哈尔滨工程大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)序列密码 Sequential Cipher.pdf
- 哈尔滨工程大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)散列函数与消息认证码 Hash and Message Authentication Code.pdf
- 哈尔滨工程大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)公钥密码体制 Public Key Cryptography.pdf
- 哈尔滨工程大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)数字签名技术 Digital Signature.pdf
- 安徽理工大学:《计算机安全与密码学 Computer Security and Cryptography》课程教学资源(课件讲稿)密钥管技术理 Key Management.pdf
- 清华大学出版社:《智能技术》课程教学资源(PPT课件讲稿)第6章 遗传算法(genetic algorithms,GA).ppt
- 清华大学出版社:《智能技术》课程教学资源(PPT课件讲稿)第4章 模糊逻辑技术 fuzzy logic(编著:曹承志).ppt
- 清华大学出版社:《智能技术》课程教学资源(PPT课件讲稿)第8章 机器学习 machine learning.ppt
- 安徽理工大学:《Linux开发基础 Development Foundation on Linux OS》课程教学资源(PPT课件讲稿)Section 1 Shell编程 Shell programming on Linux OS.ppt
- 安徽理工大学:《Linux开发基础 Development Foundation on Linux OS》课程教学资源(PPT课件讲稿)Section 2、3 GNU C/C++编程(CGI programming in GNU C/C++ language).ppt
- 清华大学出版社:《GNU/Linux编程指南》参考书籍【美】K. Wall,M. Watson, M. Whitis(共39章).pdf
- 安徽理工大学:《Linux开发基础 Development Foundation on Linux OS》课程教学资源(PPT课件讲稿)Section 4 Perl programming.ppt