例 1:一个二维数组 A,行下标的范围是 1 到 6,列下标的范围是 0 到 7,每个数组元素用相邻的 6 个字节存储,存储器按字节编址。那么,这个数组的体积是 个字节。
答: Volume = m×n×L
= (6 – 1 + 1) ×(7 – 0 + 1) ×6
= 48×6 = 288
例2.设数组 A[0…59, 0…69] 的基地址为 2048,每个元素占2个存储单元,若以列序为主顺序存储,则元素A[31, 57] 的存储地址为
解:LOC(i, j) = LOC(31, 57)
= LOC(0, 0)+(b1×j+i )×L
= 2048 + (60×57+31 )×2
= 8950
例3.假设有二维数组A6∗8 ,每个元素用相邻的 6 个字节存储,存储器按字节编址。已知 A 的起始存储位置(基地址)为 1000,计算:
- 数组 A 的体积(即存储量);
- 数组A 的最后一个元素a57 的第一个字节的地址;
- 按行存储时,元素 a14 的第一个字节的地址;
- 按列存储时,元素a47 的第一个字节的地址。
a) Volume=m*n*L
=6*8*6
=288
b) LOC(i,j)=LOC(5,7)
=LOC(0,0)+(b1×j+i )×L
=1000+(6*7+5)*6
=1282
a) LOC(i,j)=LOC(1,4)
=LOC(0,0)+(b1×i+j)
=1000+(8*1+4)*6
=1072
d)LOC(i,j)=LOC(4,7)
=LOC(0,0)+(b1×j+i )×L
=1000+(6*7+4)*6
=1276