设二维数组a[0…9, -1…7]的基地址为1024,每个元素占3个存储单元,若以行优先顺序存储,元素a[5,3]的地址是多少?若以列优先存储,元素a[5,3]地址是多少?(要求写出计算过程))
时间: 2023-06-06 18:05:55 浏览: 187
这是一个技术问题,我可以回答。
如果以行优先顺序存储,由于每个元素占3个存储单元,因此每一行占用的存储单元数为:3 * (7 - (-1) + 1) = 27。而a[5,3]位于第6行第4列,因此它前面有5行,每行27个存储单元,加上4列,每列3个存储单元,所以它的地址是:1024 + 5 * 27 * 3 + 4 * 3 = 1201。
如果以列优先存储,每一列占用的存储单元数为:3 * (9 - 0 + 1) = 30。a[5,3]位于第6行第4列,因此它前面有3个完整的列和1个不完整的列,即前面有3 * 30 + 3 * 3 = 99个存储单元,因此它的地址是:1024 + 99 + 5 * 3 = 1138。
相关问题
设有二维数组A(6*8),每个元素占6个字节存储,实现存放,A00的起始地址为1000,计算
A25的存储地址是多少?
首先,我们需要知道二维数组在内存中的存储方式。对于二维数组A[m][n],它在内存中的存储方式是按行存储,即先存储第一行,然后是第二行,以此类推,直到最后一行。而每行中的元素存储是连续的。
由于题目中数组每个元素占6个字节存储,可以得知数组中每行有8个元素,即每行占用6*8=48个字节的存储空间。
由题可知A00的起始地址为1000,因此A01的存储地址为1000+6=1006,A02的存储地址为1000+2*6=1012,以此类推,可得A25的存储地址为1000+2*48+5*6=1136。
假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )
首先,我们需要知道二维数组在主序存储中的存储方式。对于以行序为主序存储的二维数组,其存储方式为按行存储,即先将第一行存储在数组的起始位置,接着将第二行存储在第一行之后,以此类推,直到最后一行。
在本题中,二维数组A的基地址为10,每个数据元素占2个存储单元,即每个元素占用两个连续的存储单元。因此,数组A的第一个元素A[1,1]的存储地址为10,第二个元素A[1,2]的存储地址为12,依此类推,可以得到数组A[i,j]的存储地址为:
```
LOC[i,j] = 10 + 2 * [(i - 1) * 100 + (j - 1)]
```
其中,100为数组每行的元素个数。
因此,LOC[5,5]的存储地址为:
```
LOC[5,5] = 10 + 2 * [(5 - 1) * 100 + (5 - 1)] = 818
```
因此,LOC[5,5]的值为数组A中第5行第5列对应的元素的值,需要根据具体的题目给出的数组元素值来确定。