数组A中,每个元素A[i,j]的长度均为32个二进位,行下标从-1到9,列下标从1到11,从首地址S开始连续存放主存储器中,主存储器字长为16位.求:
问题描述:
数组A中,每个元素A[i,j]的长度均为32个二进位,行下标从-1到9,列下标从1到11,从首地址S开始连续存放主存储器中,主存储器字长为16位.求:
(1)存放该数组所需多少单元?
(2)存放数组第4列所有元素至少需多少单元?
(3)数组按行存放时,元素A[7,4]的起始地址是多少?
(4)数组按列存放时,元素A[4,7]的起始地址是多少? 【大连海事大学 1996 四、1 (6分)】
【参考答案】
每个元素32个二进制位,主存字长16位,故每个元素占2个字长,行下标可平移至1到11.
(1)242 (2)22 (3)s+182 (4)s+142
求详细介绍
答
(1) 数组中一共有11*11=121个元素,总共占字长:121*2(每个元素2个字长)=242
(2) 第四列有11个元素,所需单元:11*2(每个元素字长)=22
(3) a[7,4] 实际上就是第9行第4列!该元素起始地址:s+((9-1)*11+(4-1))*2=s+182
(9-1 ) * 11 + (4-1) 是在该元素之前的元素个数 ,*2就是每个元素占2个字长
该元素地址就等于 起始元素地址+在该元素之前元素所占的地址空间
(4) 这个与3是类似的,只是计算该元素之前的元素个数 的方法不一样!