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

我想将512x512分为16x16和每个16x16;有32x32。

视觉插图:
c++ - C++阵列从512x512转换为16x16x32x32-LMLPHP

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

最佳答案

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

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

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

关于c++ - C++阵列从512x512转换为16x16x32x32,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33844888/

10-11 22:41