请选择 进入手机版 | 继续访问电脑版
贠老师培训群:150322713    贠老师QQ:767708506

贠老师office培训-excel学习网

 找回密码
 立即注册
点击咨询贠老师
查看: 144|回复: 6

[C语言] 16位和32位的数是怎样存储的?

[复制链接]

3172

主题

3269

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22685
发表于 2015-12-24 22:56:49 | 显示全部楼层 |阅读模式
一个16位的数占两个字节的存储空间,即高位字节和低位字节(见10.5中的介绍)。如果你是在纸上书写一个16位的数,你总是会把高位字节写在前面,而把低位字节写在后面。然而,当这个数被存储到内存中时,并没有固定的存储顺序。

如果我们用M和L分别表示高位字节和低位字节,那么可以有两种方式把这两个字节存储到内存中,即M在前L在后或者L在前M在后。把M存储在前的顺序被称为“正向(forward)”或“高位优先(big—endian)”顺序;把L存储在前的顺序被称为“逆向(reverse)”或“低位优先(little—endian)”顺序。

big—endian这个术语的含义是数的“高位(big end)”存储在前,同时这也是对《Gulliver'sTravels》这本书中的一个词的引用,在该书中big—endian一词是指那些从大头开始吃一个煮鸡蛋的人。

大多数计算机按正向顺序存储一个数,Intel CPU按逆向顺序存储一个数,因此,如果试图将基于Intel CPU的计算机连到其它类型的计算机上,就可能会引起混乱。

一个32位的数占4个字节的存储空间,如果我们按有效位从高到低的顺序,分别用Mm,Ml,Lm和Ll表示这4个字节,那么可以有4!(4的阶乘,即24)种方式来存储这些字节。在过去的这些年中,人们在设计计算机时,几乎用遍了这24种方式。然而,时至今天,只有两种方式是最流行的,一种是(Mm,MI,Lm,LD,也就是高位优先顺序,另一种是(Ll,Lm,Ml,Mm),也就是低位优先顺序。和存储16位的数一样,大多数计算机按高位优先顺序存储32位的数,但基于Intel CPU的计算机按低位优先顺序存储32位的数。
回复

使用道具 举报

0

主题

902

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2016-1-25 18:19:39 | 显示全部楼层
抱走~老好人
回复 支持 反对

使用道具 举报

0

主题

957

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2016-1-25 18:39:09 | 显示全部楼层
有些不是太明白,研究研究再说
回复 支持 反对

使用道具 举报

0

主题

855

帖子

6

积分

注册会员

Rank: 2

积分
6
发表于 2016-1-30 09:39:19 | 显示全部楼层
这个资料非常不错,好东东!
回复 支持 反对

使用道具 举报

0

主题

178

帖子

366

积分

中级会员

Rank: 3Rank: 3

积分
366
发表于 2016-2-15 21:40:12 | 显示全部楼层
学习贵在坚持哦
回复 支持 反对

使用道具 举报

2

主题

945

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2018-3-5 11:12:16 | 显示全部楼层
佩服你,能发这么好的帖子,厉害
回复 支持 反对

使用道具 举报

7

主题

832

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2018-11-5 19:56:16 | 显示全部楼层
学习贵在坚持哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



陕ICP备15003731号  

贠老师培训 GMT+8, 2018-11-18 18:37 , Processed in 0.324778 second(s), 29 queries .

快速回复 返回顶部 返回列表