我在这里画了一个巨大的空白。
我发现的一切都是关于从给定的行和列中获取索引,但是如何从索引中获取行和列?
该行很容易:(int)(index / width)
。
我的大脑正在遭受大量出血,试图计算列。
真丢人。
我在这里画了一个巨大的空白。
我发现的一切都是关于从给定的行和列中获取索引,但是如何从索引中获取行和列?
该行很容易:(int)(index / width)
。
我的大脑正在遭受大量出血,试图计算列。
真丢人。
对于从零开始的索引,这两个操作是,其中width
是结构的宽度:
row = index / width
column = index % width
这些适用于使用整数的 C,其中除法向下舍入,%
模运算符给出余数。如果您不使用 C,则可能必须转换为等效操作。
如果您没有模运算符,则可以使用:
row = index / width
column = index - (row * width)
Paxdiablo 的答案是正确的。如果有人需要反向过程从行和列获取索引:
index = (row * width) + column
斯威夫特 4
typealias ColumnRowType = (column:Int, row:Int)
func indexToColumnRow(index:Int, columns:Int) -> ColumnRowType
{
let columnIndex = (index % columns)
let rowIndex = /*floor*/(index / columns) // we just cast to an `Int`
return ColumnRowType(columnIndex, rowIndex)
}
在java中,列偏移量为1,这是一种方法
int offset=1;
column = Math.floorDiv(location-offset , 3)+offset;
row = ( (location-offset) %3 )+offset ;