如何翻转内存块中的任意位
How to flip any bit in a memory block?
如何在内存块中翻转我想要的任何位:
int size = 4000;
void* block = malloc(size);
bzero(block, size);
// flip bit #100 in block
感谢
void flip_bit (void *block, int bit)
{
unsigned char *b = (unsigned char *) block;
b[bit/8] ^= 1 << (bit % 8);
}
相关文章:
- 64位机器上的C++内存对齐
- C++内存模型和位字段的最大序列
- FlatBuffers/Protobuf 中是否有支持任意 24 位有符号整数定义的可移植二进制序列化架构?
- 整数数据如何以位为单位存储在内存中?不是右对齐吗?
- 如何在c/c++中检查两个任意内存范围是否重叠
- 从C/C++(Win64)中的内存加载64位DLL
- 用C++压缩内存中的位图
- C++gdi::内存中的位图到PNG图像
- 如何将内存中的位转换为一串和零?
- 是否可以对数组(一长段内存)使用按位运算
- 指针可以用于访问内存中的任何任意区域吗?
- Gdiplus::位图::FromHBITMAP内存泄漏
- 将数组中的任意位复制到变量中?
- 如何反转存储在内存地址的位?
- 内存泄漏,许多位图图像C CLI
- 在结构中使用位字段并使用C++从内存中读取实例
- 将两位数字转换为低内存表示的最快方法
- 如何翻转内存块中的任意位
- 为遗传算法分配和检索逐位内存值
- 为 CUDA 实现 32 位内存集的"正确"方法是什么?