1
下面是有關清除所有代碼的MSB的(最重要位)通過I(含)清楚MSB位都通過I(含)
public int clearBitsMSBThrough(int num, int i) {
int mask = (1 << (i + 1)) - 1;
return num & mask;
}
我感到困惑的「包容性」。 例如,如果數字是0011 1010且i = 3。 掩碼將爲0000 1111,結果爲0000 1010,但位置3中的位不會清零。
我誤解了這個問題嗎? 我認爲這應該是:
int mask = (1 << i) - 1;
通過
binary subtraction
'我誤解了這個問題?'問題是什麼? –
問題是編寫一個方法來清除從MSB到i(包括)的所有位。謝謝! – marinama
然後,它看起來像你已經知道問題和解決方案是什麼,因爲你說「我認爲它應該是:int mask =(1 << i)-1;'' –