📜  使用行优先和列优先顺序计算 1-D、2-D 和 3-D 元素的地址

📅  最后修改于: 2021-09-07 04:39:24             🧑  作者: Mango

本文重点计算一维、二维、三维数组中行主序和列主序任意元素的地址。

计算一维数组中任何元素的地址一维数组(或一维数组)是一种线性数组。访问其元素涉及可以表示行或列索引的单个下标。

例子:

一维数组

要查找数组中元素的地址,请执行以下操作 使用公式——

例子:给定数组A[1300…………1900]的基地址为1020 ,每个元素在内存中的大小为 2 个字节,求A[1700]的地址?

解决方案:

计算二维数组中任意元素的地址二维数组可以定义为数组的数组。二维数组被组织为矩阵,可以将行和列的集合表示为 array[M][N],其中 M 是行数,N 是列数。

例子:

要查找二维数组中任何元素的地址,有以下两种方法-

  • 行主要订单
  • 列主要订单

行主要顺序:行主要顺序将连续元素分配到连续的内存位置,这些元素在行之间移动,然后向下移动到下一行。在简单的语言中,数组的元素以 Row-Wise 方式存储。
要使用行优先顺序查找元素的地址,请使用以下公式:

示例:给定一个数组, arr[1………10][1………15] ,基值为100 ,每个元素的大小在内存中为 1 Byte。借助行主序找到arr[8][6]的地址?

解决方案:

列主要顺序:如果数组的元素以列主要方式存储意味着跨列移动,然后移动到下一列,则它按列主要顺序。要使用列主序查找元素的地址,请使用以下公式:

示例:给定一个数组arr[1………10][1………15] ,基值为100 ,每个元素的大小为内存中的 1 字节,借助以下命令找到 arr[8][6] 的地址列主序。

解决方案:

从上面的例子可以看出,对于同一个位置,得到了两个不同的地址位置,这是因为以行为主的顺序移动是跨行然后向下移动到下一行,而在列优先的顺序中,首先移动向下到第一列,然后是下一列。所以两个答案都是对的。

因此,这完全基于要找到其地址的元素的位置,在某些情况下,同样的答案也会以行优先顺序和列优先顺序获得,而在某些情况下,会得到不同的答案。

计算 3 维数组中任意元素的地址: 3 维数组是 2 维数组的集合。它通过使用三个下标来指定:

  • 块大小
  • 行大小
  • 列大小

数组中的更多维度意味着可以在该数组中存储更多数据。

例子:

3维数组

要查找 3 维数组中任何元素的地址,有以下两种方法-

  • 行主要订单
  • 列主要订单

行主序:要使用行主序查找元素的地址,请使用以下公式:

示例:给定一个数组arr[1:9, -4:1, 5:10] ,基值为400 ,每个元素的大小为2 字节在内存中找到元素arr[5][-1][8] 的地址在行优先顺序的帮助下?

解决方案:

列主序:要使用列主序查找元素的地址,请使用以下公式-

示例:给定一个数组arr[1:8, -5:5, -10:5]基值为400 ,每个元素的大小为4 字节在内存中找到元素arr[3][3][3] 的地址在列主序的帮助下?

解决方案:

如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live