C ++数组从512x512转换为16x16x32x32

时间:2015-11-21 15:06:42

标签: c++ arrays pointers 3d

我有一个512x512的整数,范围是0-255。

我想将512x512分成16x16和16x16中的每一个;有32x32。

视觉插图: Visual

因为我希望能够将16x16块中的一块与另一块进行比较(因此技术上将一个32x32阵列与另一个32x32阵列进行比较)。

1 个答案:

答案 0 :(得分:1)

分配适当的16x16矩阵32x32矩阵 然后枚举512x512矩阵中的行和列。

对于来自源的每一行r和c列的“地址” 16x16矩阵由r / 32和c / 32给出(“/”表示整数除法) 并且寻址为16x16的32x32矩阵的索引值为 由r%32和c%32 /“%”给出,用于标识整数余数运算符。

如果性能有问题,您也可以利用位操作,将“>> 5”替换为“/ 32”,将“& 0x1f”替换为“%32”。