如何翻转内存块中的任何位?

时间:2014-10-13 04:38:27

标签: c++ bit-manipulation

如何在大块内存中翻转我想要的任何内容:

int size = 4000;
void* block = malloc(size);
bzero(block, size);
// flip bit #100 in block

由于

1 个答案:

答案 0 :(得分:1)

void flip_bit (void *block, int bit)
{
    unsigned char *b = (unsigned char *) block;
    b[bit/8] ^= 1 << (bit % 8);
}