作业 :数据的表示
宁晨然
一、概述
本次作业重心在于对于计算机中整数、浮点数的机内表示和运算过程,通过观察与常
识不符合的程序结果来探索机器运算方式。以下分为实验过程、实验代码、实验感受介
绍。
二、实验过程
下述两个结构所占存储空间多大?结构中各分量所在位置相对于结构起始位置的偏
移量是多少?请编写程序以验证你的答案。若使用 语句,则结果又如
何?若使用 语句,结果又如何?
答:
为了查找到每个类型在 中的偏移位置,我使用了 语句,用来获得每个
类型的地址偏移量。
( ) 结构所占存储空间 , 结构所占存储空间 。
中各分量所在位置的偏移量分别为:
中各分量所在位置的偏移量分别为:
原因是:
和 的结构中虽然是分别占用 若按照节省空间的方法存放,只
需要空间 即可,但是系统默认空间存储方式中有对齐操作,是为了方便用户和机器查找
到所需要的数据的地址,更便于查找。默认对齐操作中,对齐方式(变量存放的起始地址
相对于结构的起始地址的偏移量),有规则: 偏移量必须为 即 的倍
数; 偏移量必须为 即 的倍数; 偏移量必须为 即
的倍数; 偏移量必须为 即 的倍数 偏移量必须为
即 的倍数。
所以在 的情况中, 起始位置 占用 个字节,然后从 开始存
类型 占用 个字节,放 个空字节,再从 ( )开始存 类型 占用 个字节
(目前有 个字节),放 个空字节,最后从 开始存放 类型 占用 个字
节,共有 个字节。这是默认对齐方式,使得 的 类型占用 个字节。
评论0