矩阵索引的数组索引

时间:2014-11-11 13:50:29

标签: c++ c arrays matrix command-line

我有一个byte array,它由一个索引i编制索引。但是这个数组将在屏幕上显示为array of array(不是矩阵,因为不是所有的线都具有相同的尺寸)。用箭头键我能够冲浪" "矩阵"的这些元素。所选元素将具有不同的背景颜色。为此,我需要我想要突出显示的rowscolumns字节。

所以我需要有关公式的帮助来转换行和列的单个索引。

我已经为按键创建了逻辑,即,当可以向某个方向移动时,只需要在屏幕上显示。

完整行的长度为8个字节。

在这种情况下,数组是:

unsigned char test[] = {0x00, 0x01, 0x02, 0x03, 0x61, 0x62, 0x63, 0x07, 0x21, 0x09, 0x0A};

它会出现这种情况:

enter image description here

3 个答案:

答案 0 :(得分:3)

要知道列,行和行长度的索引,您只需执行以下操作:

I = Row * LineLenght + Column;

反过来如下:

Row = I / LineLenght; // Integer division
Column = I % LineLenght; // Reminder of the division of I by LineLenght

这是基本的算术:)

你必须确保你永远不会从数组大小下降。

答案 1 :(得分:2)

你应该使用modus和divison。 例如,如果你想在一行中有7个元素,要获得第一个索引,你需要除以7,得到第二个索引,mod为7。

所以10将成为1,3

答案 2 :(得分:0)

我认为首先必须决定你想拥有多少列(称为X号)。所以你将有Y行(全部完整,1或0不完整)。现在,当你想要转换索引i:row = i / Y,column = i%Y。