2
我想知道如何將下面的Java代碼實現到它的Python等價物中。通過清除python比特索引0
在Java中,我採取了許多,並通過與第0指數使用逐運營商清理一些指數位(含)
int clearBitsIthrough0(int num, int i) {
int mask = (-1 << (i + 1));
return num & mask;
}
我在相當於Python代碼嘗試低於
def clearBitsIThrough0(num, i):
mask = format(0xf << 4, 'b')
return num & mask
不過,我得到一個
TypeError: unsupported operand type(s) for &: 'int' and 'str'
我知道這是因爲面膜是在這裏,但如果我把它轉換爲int,我失去了底層的整數值,我仍然得到錯誤的結果。
我嘗試了不同的方式做以下
def clearBitsIThrough0(num, i):
mask = int(format(0xf << 4, 'b'), 2)
num = int(format(num, 'b'), 2)
print(num, mask)
return num & mask
但這返回0,這是錯誤的答案。
我該怎麼做?
就嘗試過自己。我只是愚蠢的不去嘗試。我沒有嘗試它,因爲我認爲自從-1在Python中沒有被表示爲1111(它在Java中),這是行不通的。我是否應該刪除這個問題,因爲它似乎沒有達到任何目的? –
顯示高級Python也可以讓你做低級別的東西有價值! –