在他讲的那个内存修改器的那个例子中:INT GetAddressVal(void *pAddr)
{ int Offset;
DWORD Address;
Address = (DWORD)pAddr;
//pAddr是传进函数的一个地址,地址经过下面的与操作得到什么了?
Offset= Address &4095;//这句什么意思?
Address & = -4096;//这句是什么意思?
。。}
{ int Offset;
DWORD Address;
Address = (DWORD)pAddr;
//pAddr是传进函数的一个地址,地址经过下面的与操作得到什么了?
Offset= Address &4095;//这句什么意思?
Address & = -4096;//这句是什么意思?
。。}
Offset看名称是偏移地址
不知道他用来干嘛
4095转换成二进制就是 1111 1111 1111
Address & 4095 的结果就是取Address的后12位。Address & = -4096 => Address = Address & -4096,也是位操作