[英]AND a mask to address (lower bits needed) C#
所以我知道我可以將掩碼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”語句,但這並不是很干凈。
謝謝!
您可以將其右移(32 - number of mask bits you need)
。 因此,如果您需要低8位,則可以右移(32-8 = 24)
位。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.