编译原理—数组元素翻译
Posted 之墨_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理—数组元素翻译相关的知识,希望对你有一定的参考价值。
编译原理—数组元素翻译
数组A[1…20][1…20]如何翻译?
有如下公式:
可变部分:
w
w
w为元素大小,整型
i
n
t
int
int为4
(
.
.
.
(
i
1
∗
n
2
+
i
2
)
∗
n
3
+
i
3
)
.
.
.
.
)
∗
n
k
+
i
k
)
∗
w
(...(i_1*n_2+i_2)*n_3+i_3)....)*n_k+i_k)*w
(...(i1∗n2+i2)∗n3+i3)....)∗nk+ik)∗w
常量部分:
A − ( . . . ( l o w 1 ∗ n 2 + l o w 2 ) ∗ n 3 + l o w 3 ) . . . ) ∗ n k + l o w k ) ∗ w ) A-(...(low_1*n_2+low_2)*n_3+low_3)...)*n_k+low_k)*w) A−(...(low1∗n2+low2)∗n3+low3)...)∗nk+lowk)∗w)
对于A[1…20][1…20]
l
o
w
1
=
1
,
l
o
w
2
=
1
h
i
g
h
1
=
20
,
h
i
g
h
2
=
20
n
1
=
h
i
g
h
1
−
l
o
w
1
+
1
=
20
n
2
=
h
i
g
h
2
−
l
o
w
2
+
1
=
20
low_1=1,low_2=1\\\\ high_1=20,high_2=20\\\\ n_1=high_1-low_1+1=20 \\\\n_2=high_2-low_2+1=20
low1=1,low2=1high1=20,high2=20n1=high1−low1+1=20n2=high2−low2+1=20
所以常量值为
A
−
(
l
o
w
1
∗
n
2
+
l
o
w
2
)
∗
4
=
A
−
(
1
∗
20
+
1
)
∗
4
=
A
−
84
A-(low_1*n_2+low_2)*4=A-(1*20+1)*4=A-84
A−(low1∗n2+low2)∗4=A−(1∗20+1)∗4=A−84
可变值为
(
i
1
∗
n
2
+
i
2
)
∗
4
=
(
i
∗
20
+
j
)
∗
4
=
80
i
+
4
j
(i_1*n_2+i_2)*4=(i*20+j)*4=80i+4j
(i1∗n2+i2)∗4=(i∗20+j)∗4=80i+4j
以上是关于编译原理—数组元素翻译的主要内容,如果未能解决你的问题,请参考以下文章