次の式の意味:
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 が指定するように、行方向または列方向の 2 つの方法で実行できます。式から、行方向の移動が選択されているように見えます。
22 to 25 (4)
30 to 35 (6)
40 to 42.(3)
= 13 entries.
したがって、A[4,2] のアドレス = 1000 + 13*(エントリあたりのバイト数)
方程式で確認するには、
i - LBR = 4 - 2 = 2.
j - LBC = 2 - 1 = 1.
したがって、n*( i - LBR ) + (j - LBC) = 6*2 + 1 = 13.