C/C++笔记(三)浮点型以及其内存解析

本文介绍了C/C++中浮点类型在内存的存储方式,遵循IEEE标准,包括符号位、阶码和尾数三部分。以float和double为例,详细解析了它们的二进制表示,以及如何计算浮点型的二进制形式。
摘要由CSDN通过智能技术生成

本文系列仅是本人根据个人理解对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位,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值