Address Calculation in Single and Double Dimension Array - ISC Computer Science
Address Calculation in single (one)
Dimension Array:
Array
of an element of an array say “A[ I ]” is calculated using the following
formula:
Address
of A [ I ] = B + W * ( I – LB )
Where,
B = Base address
W = Storage Size of one element stored in the array (in byte)
I = Subscript of element whose address is to be found
LB = Lower limit / Lower Bound of subscript, if not specified assume 0 (zero)
B = Base address
W = Storage Size of one element stored in the array (in byte)
I = Subscript of element whose address is to be found
LB = Lower limit / Lower Bound of subscript, if not specified assume 0 (zero)
Example:
Given
the base address of an array B[1300…..1900] as 1020 and size
of each element is 2 bytes in the memory. Find the address of B[1700].
Solution:
The
given values are: B = 1020, LB = 1300, W = 2, I = 1700
Address
of A [ I ] = B + W * ( I – LB )
=
1020 + 2 * (1700 – 1300)
= 1020 + 2 * 400
= 1020 + 800
= 1820 [Ans]
= 1020 + 2 * 400
= 1020 + 800
= 1820 [Ans]
Address Calculation in Double (Two)
Dimensional Array:
While
storing the elements of a 2-D array in memory, these are allocated contiguous
memory locations. Therefore, a 2-D array must be linearized so as to enable
their storage. There are two alternatives to achieve linearization: Row-Major
and Column-Major.
Address
of an element of any array say “A[ I ][ J ]” is calculated in two forms
as given:
(1) Row Major System (2) Column Major System
(1) Row Major System (2) Column Major System
Row
Major System:
The
address of a location in Row Major System is calculated using the following
formula:
Address
of A [ I ][ J ] = B + W * [ N * ( I – Lr ) + ( J – Lc ) ]
Column
Major System:
The
address of a location in Column Major System is calculated using the following
formula:
Address
of A [ I ][ J ] Column Major Wise = B + W * [( I – Lr ) + M * ( J – Lc )]
Where,
B = Base address
I = Row subscript of element whose address is to be found
J = Column subscript of element whose address is to be found
W = Storage Size of one element stored in the array (in byte)
Lr = Lower limit of row/start row index of matrix, if not given assume 0 (zero)
Lc = Lower limit of column/start column index of matrix, if not given assume 0 (zero)
M = Number of row of the given matrix
N = Number of column of the given matrix
B = Base address
I = Row subscript of element whose address is to be found
J = Column subscript of element whose address is to be found
W = Storage Size of one element stored in the array (in byte)
Lr = Lower limit of row/start row index of matrix, if not given assume 0 (zero)
Lc = Lower limit of column/start column index of matrix, if not given assume 0 (zero)
M = Number of row of the given matrix
N = Number of column of the given matrix
Important : Usually number of
rows and columns of a matrix are given ( like A[20][30] or A[40][60] ) but if
it is given as A[Lr- – – – – Ur, Lc- – – – – Uc]. In this case
number of rows and columns are calculated using the following methods:
Number
of rows (M) will be calculated as = (Ur – Lr) + 1
Number of columns (N) will be calculated as = (Uc – Lc) + 1
Number of columns (N) will be calculated as = (Uc – Lc) + 1
And
rest of the process will remain same as per requirement (Row Major Wise or
Column Major Wise).
Examples:
Q
1.
An array X [-15……….10, 15……………40] requires one byte of storage. If beginning
location is 1500 determine the location of X [15][20].
Solution:
As
you see here the number of rows and columns are not given in the question. So
they are calculated as:
Number
or rows say M = (Ur – Lr) + 1 = [10 – (- 15)] +1 = 26
Number or columns say N = (Uc – Lc) + 1 = [40 – 15)] +1 = 26
Number or columns say N = (Uc – Lc) + 1 = [40 – 15)] +1 = 26
(i)
Column Major Wise Calculation of above equation
The
given values are: B = 1500, W = 1 byte, I = 15, J = 20, Lr = -15, Lc = 15, M =
26
Address
of A [ I ][ J ] = B + W * [ ( I – Lr ) + M * ( J – Lc ) ]
=
1500 + 1 * [(15 – (-15)) + 26 * (20 – 15)] = 1500 + 1 * [30 + 26 * 5] =
1500 + 1 * [160] = 1660 [Ans]
(ii)
Row Major Wise Calculation of above equation
The
given values are: B = 1500, W = 1 byte, I = 15, J = 20, Lr = -15, Lc = 15, N =
26
Address
of A [ I ][ J ] = B + W * [ N * ( I – Lr ) + ( J – Lc ) ]
=
1500 + 1* [26 * (15 – (-15))) + (20 – 15)] = 1500 + 1 * [26 * 30 + 5] = 1500 +
1 * [780 + 5] = 1500 + 785
= 2285 [Ans]
= 2285 [Ans]
Doing a great job brother...!!! Keep Shining..!!
ReplyDeletehttps://ziyyara.in/home-tuition/online-home-tuition-for-isc-board
ReplyDelete"Ziyyara’s ISC tutor offers one-to-one online home tuition for ISC Board students.They implement pedagogy teaching methods while delivering online tuition classes."
Visit On:- gcse online tuition
Phone no - +91-9654271931
Thank you for providing such an informative blog. Choose our online tuition for computer science, at Ziyyara. Our user-friendly online platform ensures seamless communication between you and your tutor, enabling personalized learning at your convenience. Don't let computer science overwhelm you anymore – enroll with Ziyyara today and unlock your full potential.
ReplyDeleteVisit Ziyyara.com or contact us at +91 9654271931