本文系列仅是本人根据个人理解对C/C++语言的一些理解笔记、介绍不喜勿喷,欢迎大神对本人文章中的错误进行指正
本文是本人基于近几年的学习、工作进行整理,结合自己所学写下C/C++笔记系列文章,也期待能给一些初入编程门径者一些启发和学习的资料
注:本文中讨论的浮点型以微软公司的VS编译环境为例,float:4字节 double:8字节。
一、浮点类型在内存中的存储方式
首先我们要明白,任何数据在内存中都是以二进制的补码形式存储的,(具体内容请看上一章内容中,本章案例皆为正数即补码即为原码二进制),例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式(大端模式和小端模式后面我会单独写一篇文章进行讲解)。但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是采用IEEE所制定的标准浮点格式,即二进制科学表示法。
在二进制科学表示法中,S=M*2^N 主要由三部分构成:符号位+阶码(N)+尾数(M)。对于float型数据,其二进制有32位,其中符号位1位,阶码8位,尾数23位;对于double型数据,其二进制为64位,