栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言之数据存储

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言之数据存储

一、数据类型

 1.数据类型

  2.数据类型的作用

  ①确定所能访问的空间大小;

  ②看待空间中数据的角度。

 3.字节序

   ①概念:cpu对内存中的数据以字节为单位进行存取的顺序。

  ②分类:

   大端:低地址存高位

   小端:低地址存低位

#例 int a=0x01020304

   大端:01020304

   小端:04030201

   ③字节序针对的数据:存储单元大于一个字节的数据类型。

二、整型存储

 在内存中的数据都是以二进制的形式存储,直接存储的是补码。

(此处省略原、反、补码的操作,但是它非常重要)

以补码形式存储的好处是可以节省运算单元。

三、浮点型存储

 1.二进制转小数的操作方法是除二倒取余,小数转二进制的操作是乘二顺取整。

(此处省略这两种方法,它依然是非常重要的)

 2.现在重点是浮点数的存储方法

浮点数表示为三部分

S - 符号位 占一个比特位 正0负1

E - 阶码位(指数位,说成阶码位比较高大上) 占8个比特位 

M - 尾数 占23个比特位

真正指数位存储的数值是实际指数值+127

(此处采用指数基数127)

到这还是不会指数位该怎么存?

举个

-3.125

转成二进制:11.001=1.1001*2^1

指数为1,加上127为128

128怎么存?1000 0000

最后存尾数,就是小数点后面的数,继续补全23个比特位就是

100 1000 0000 0000 0000 0000

所以-3.125的存储为

1100 0000 0100 1000 0000  0000 0000 0000

再举个

10.125

转成二进制:1010.001=1.010001*2^3

S - 0

E - 1000 0010(3+127=130=128+2)

M - 0100010 00000000 00000000

所以10.125怎么存?

0100 0001 0010 0010 0000 0000 0000 0000

 3.两种特殊情况

   ①E全0:这时真实指数值是1-127=-126,M表示真实值,通常用于表示±0;

   ②E全1:这时真实指数值为255-127=128,M全0表示±∞。

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948187.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号