以下等式的含义:
BA + [n * (i - LBR) + (j - LBC)] * w
如果你有一个数组 A[n][n] 并且你知道入口 A[LBR][LBC] 的地址为 BA,那么 A[i][j] 的地址可以计算如下。假设 n = 6,
00 01 02 03 04 05
10 11 12 13 14 15
20 21 22 23 24 25
30 31 32 33 34 35
40 41 42 43 44 45
50 51 52 53 54 55
这里假设我们知道A[2,1] = 1000的地址。我们需要计算A[4,2]的地址。现在要从 [2,1] 到达 [4,2],我们需要经过多少个条目?当然,正如@Deepu 指定的那样,我们可以通过两种方式进行操作,即按行或按列。从等式看来,已经选择了逐行旅行。
22 to 25 (4)
30 to 35 (6)
40 to 42.(3)
= 13 entries.
因此 A[4,2] 的地址 = 1000 + 13*(numOfbytes per entry)
用方程验证,
i - LBR = 4 - 2 = 2.
j - LBC = 2 - 1 = 1.
因此,n*( i - LBR ) + (j - LBC) = 6*2 + 1 = 13.