下面是说明:爪哇 - 设置一个整数的独特位为零
为了阻止你需要破译送给他的爪牙加密的消息疯编码器邪恶的天才。这条消息包含了几个数字,当输入一台超级计算机时,将会发射一枚导弹进入遮挡太阳的天空,并让地球上所有的人都变得脾气暴躁和伤心。
您发现某些数字在其二进制表示中有一个修改的单个数字。更具体地说,在给定数量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)) ;
}
有人可以解释什么解决方案和它的语法?