我有一个byte array
,它由一个索引i
编制索引。但是这个数组将在屏幕上显示为array of array
(不是矩阵,因为不是所有的线都具有相同的尺寸)。用箭头键我能够冲浪" "矩阵"的这些元素。所选元素将具有不同的背景颜色。为此,我需要我想要突出显示的rows
和columns
字节。
所以我需要有关公式的帮助来转换行和列的单个索引。
我已经为按键创建了逻辑,即,当可以向某个方向移动时,只需要在屏幕上显示。
完整行的长度为8个字节。
在这种情况下,数组是:
unsigned char test[] = {0x00, 0x01, 0x02, 0x03, 0x61, 0x62, 0x63, 0x07, 0x21, 0x09, 0x0A};
它会出现这种情况:
答案 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。