给定一个非负整数 n。目标是反转 n 的位,并报告结果数字。在反转位时,使用整数的实际二进制形式;不考虑前导 0。
输入 − 13
输出 − 反转给定数字 11 的实际位
(13)<sub>10</sub> = (1101)<sub>2</sub>. After reversing the bits, we get: (1011)<sub>2</sub> = (11)<sub>10</sub>.
Explanation − 从输入的数字中获取二进制位,然后将其反转,并最终转换为十进制格式,作为输出返回。
Input − 18
Output − 反转给定数字9的实际位。
(18)<sub>10</sub> = (10010)<sub>2</sub>. After reversing the bits, we get: (1001)<sub>2</sub> = (9)<sub>10</sub>.
Explanation − 二进制位从输入数字中获取,然后被反转并最终转换为十进制格式,作为输出返回。
在主方法内部
输入数字并传递给方法 reverseBinaryBits(int input)
在方法 reverseBinaryBits(int input) 内部
初始化变量 rev_input 以存储反转的位
循环迭代,直到输入大于0(我们从右边开始遍历)
使用位右移操作来逐位检索n的二进制表示中的每一位,并使用位左移操作来累积它们到 rev 中
class TutorialsPoint{ public static int reverseBinaryBits(int input){ int rev_input = 0; while (input > 0){ rev_input <<= 1; if ((int) (input & 1) == 1){ rev_input ^= 1; } input >>= 1; } return rev_input; } public static void main(String[] args){ int input = 13; System.out.println("Reverse actual bits of the given number"); System.out.println(reverseBinaryBits(input)); } }
如果我们运行上面的代码,它将生成以下输出
Reverse actual bits of the given number 11
以上是在Java中反转给定数字的实际位的详细内容。更多信息请关注PHP中文网其他相关文章!