【发布时间】:2016-09-25 16:11:46
【问题描述】:
我被这个问题困住了。感谢您的帮助。
给你两个整数,n 和 m。找到它们在二进制表示中不同的最右边位的位置(保证存在这样的位),从右到左计数。
返回 2position_of_the_found_bit 的值(从 0 开始)。
例子
对于 n = 11 和 m = 13,输出应该是 不同的RightmostBit(n, m) = 2.
11 (下标 10) = 1011 (下标 2), 13 (下标) 10 = 1101 (下标 2),它们最右边的不同位是位置 1(从 0 开始)从右边开始的位二进制表示。 所以答案是 2 的 1 次方 = 2。
【问题讨论】:
-
这是一个简单的问题,你做了什么?
-
我刚开始学习位运算符。我想知道你是否可以给我一个提示,让我指出正确的方向。谢谢。
-
一种方式:如果对它们进行异或运算,那么所有公共位都将设置为零,而将不匹配的位设置为。现在,从右边开始,找到第一个非零位的位位置。即右移或仅检查位位置。
-
好的,谢谢瑞恩!我会试试的。
-
感谢瑞恩的帮助!!