0
点赞
收藏
分享

微信扫一扫

C语言进阶篇1-----------》数据的存储(原码反码补码+大小端判断+整型提升+浮点数的存储)

Sophia的玲珑阁 2022-04-22 阅读 68
c语言

目录

补充:debug版本和release版本的区别

1. 数据类型的介绍

1.1  类型的基本归类:

整型:

浮点型:

构造类型:

指针类型

2 数据在内存中的存储

2.1 原码、反码、补码

2.2 大端存储和小端存储

第一种方法:利用强制类型转换

第二种方法:利用联合体(联合的成员是共用同一块内存空间)

3. 数据的整型提升

4.浮点型在内存中的存储

4.1 浮点数存储的规则

4.2 IEEE 754规定:

4.3 IEEE 754对有效数字M的特别规定

4.4 IEEE 754对于指数E的特别规定

4.4.1 指数E从内存中取出还可以再分成三种情况:

5.例题赏析:

补充:debug版本和release版本的区别

1. 数据类型的介绍

1.1  类型的基本归类:

整型:

浮点型:

构造类型:

指针类型

空类型:

2 数据在内存中的存储

2.1 原码、反码、补码


 

我们发现对于数据-10,在内存中的存储形式居然是f6 ff ff ff,我们不妨写一下它的原码、反码、补码:

2.2 大端存储和小端存储

第一种方法:利用强制类型转换

 具体代码如下:

测试结果: 

 与我们前面结论说VS2019是小端存储结果是一致的。

第二种方法:利用联合体(联合的成员是共用同一块内存空间)

具体代码如下:

 解析:

 测试结果:

 与我们前面结论说VS2019是小端存储结果是一致的。 

3. 数据的整型提升

4.浮点型在内存中的存储

4.1 浮点数存储的规则

首先我们先给出浮点型数据的存储形式,在一起解决上面我们给出的两个疑问:

4.2 IEEE 754规定:

对于32位的浮点数:最高的1位是符号位s,接着的8位是指数E,剩下的23位位有效数字M

对于64位的浮点数:最高的1位是符号位s,接着的11位是指数E,剩下的52位位有效数字M

 
4.3 IEEE 754对有效数字M的特别规定

4.4 IEEE 754对于指数E的特别规定

4.4.1 指数E从内存中取出还可以再分成三种情况:

1、E不全为0或不全为1


2、E全为0

3、E全为1


5.例题赏析:

 不妨先自己动手算一算:

打印验证,与我们分析的结果是一致的:


 

举报

相关推荐

浮点数的存储

0 条评论