下面是說明:爪哇 - 設置一個整數的獨特位爲零
爲了阻止你需要破譯送給他的爪牙加密的消息瘋編碼器邪惡的天才。這條消息包含了幾個數字,當輸入一臺超級計算機時,將會發射一枚導彈進入遮擋太陽的天空,並讓地球上所有的人都變得脾氣暴躁和傷心。
您發現某些數字在其二進制表示中有一個修改的單個數字。更具體地說,在給定數量n中,從右邊開始的第k位最初被設置爲0,但其當前值可能不同。它現在你來寫,這將改變n的第k個比特回0
例
對於n = 37和k中的功能= 3,輸出應該是 killKthBit(N,K) 33. =
3710 = 1001012〜> 1000012 = 3310
對於n = 37和K = 4,輸出應該是
killKthBit(N,K)= 37
第4位爲0已經(貌似瘋狂的編碼器忘記加密此數),所以答案仍然是37.」
這裏是一個解決方案,我發現,我無法理解這一點:
int killKthBit(int n, int k)
{
return n & ~(1 << (k - 1)) ;
}
有人可以解釋什麼解決方案和它的語法?