所以我知道我可以将 0xFFFFFFFF 的掩码移位 8 位,例如获得 0xFFFFFF00 和它的地址并获取除最后 8 位之外的所有内容,但我想换一种方式,这样我就可以抓住带有 0x000000FF 之类的掩码的地址,但是右移显然不起作用。有任何想法吗?
这是我提到的第一种位移的代码。
public int Block_tag(int address, int block_size, int max_address)
{
int bit_shift = (int)Math.Log(block_size, 2);
int bit_mask = max_address << bit_shift;
return (address & bit_mask);
}
我可以用大约 12 个“If”语句手动完成,但这不是很干净。
谢谢!