鉴于我这样分配内存:
Create(int width, int height, int depth)
{
size_t numBits = width * height * depth;
size_t numBytes = numBits / 8 + numBits % 8 != 0 ? 1 : 0;
bytes = malloc(numBytes);
...
现在我想获取给定 x、y、b 的字节偏移量:
DoSomething(int x, int y, int bit)
{
Byte* byte = bytes + ... some offset ...
例如,如果我说Create(3, 3, 3)
然后DoSomething(0, 1, 1)
我会将字节偏移量计算为 0。如果我说DoSomething(0, 2, 2)
那将是第 9 位,那么我会将偏移量计算为 1。
一旦我有了字节,我就可以执行我需要的操作。