16.二维数组A[15][20],已知A[10][10]的存储地址为3000,每个数组元素占有4个存储单元,若按照行主序存储则A[13][18]的地址为 ;若按照列主序存储为 。
时间: 2023-09-30 12:02:42 浏览: 90
按照行主序存储时,我们可以计算出A[13][18]的存储地址为:
```
A[13][18] = A[10][10] + (13-10)*20 + (18-10)
= 3000 + 60 + 8
= 3068
```
其中,(13-10)*20表示行数之差乘以每行的元素个数,(18-10)表示列数之差。因为每个数组元素占4个存储单元,所以需要加上相应的偏移量。
按照列主序存储时,我们可以计算出A[13][18]的存储地址为:
```
A[13][18] = A[10][10] + (18-10)*15 + (13-10)
= 3000 + 120 + 3
= 3123
```
其中,(18-10)*15表示列数之差乘以每列的元素个数,(13-10)表示行数之差。因为每个数组元素占4个存储单元,所以需要加上相应的偏移量。
相关问题
二维数组A[15][20],已知A[10][10]的存储地址为3000,每个数组元素占有4个存储单元,若按照行主序存储则A[13][18]的地址为
按照行主序存储,数组A[13][18]的地址可以通过以下计算得出:
首先,A[10][10]的地址为3000,它在二维数组中的行下标为10,列下标为10。每个数组元素占有4个存储单元,因此A[10][10]的结束地址为3000 + 4 = 3004。
接下来,我们需要计算A[13][18]在内存中的地址。它在二维数组中的行下标为13,列下标为18。根据行主序存储的规则,每一行的元素都是连续存储的,所以A[13][18]的地址应该比A[10][10]的地址大。
首先计算A[10][0]的地址,它的行下标为10,列下标为0。根据行主序存储的规则,它的地址应该比A[10][10]的地址小,因此可以通过以下公式计算出A[10][0]的地址:
A[10][0]的地址 = 3000 - 10 * 20 * 4 = 2200
接下来计算A[13][0]的地址,它的行下标为13,列下标为0。根据行主序存储的规则,它的地址应该比A[10][0]的地址大,因此可以通过以下公式计算出A[13][0]的地址:
A[13][0]的地址 = 2200 + 13 * 20 * 4 = 3880
最后,计算A[13][18]的地址,它的行下标为13,列下标为18。根据行主序存储的规则,它的地址应该比A[13][0]的地址大,因此可以通过以下公式计算出A[13][18]的地址:
A[13][18]的地址 = 3880 + 18 * 4 = 3952
因此,按照行主序存储,二维数组A[13][18]的地址为3952。
1.假设有二维数组A6*8,每个元素用相邻的8个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为2000,计算: (1)(10分)数组A的体积(存储量); (2)(10分)数组A的最后一个元素a57的第一个字节的地址; (3)(10分)按行存储时,元素a14的第一个字节的地址; (4)(10分)按列存储时,元素a47的第一个字节的地址。
1. (1) 数组A的体积为6*8*8=384字节。
(2) 数组A最后一个元素a57的第一个字节的地址为: 2000 + 5*8*8 + 6*8 - 8 = 2744。
(3) 按行存储时,元素a14的第一个字节的地址为: 2000 + 1*8*8 + 3*8 = 2032。
(4) 按列存储时,元素a47的第一个字节的地址为: 2000 + 6*8*8 + 3*8 + 6*8 = 2544。
阅读全文