我有一个数组,它的整数是512x512,范围是0-255。
我想将512x512分为16x16和每个16x16;有32x32。
视觉插图:
因为我希望能够将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/