
给定一个非负整数 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 − 从输入的数字中获取二进制位,然后将其反转,并最终转换为十进制格式,作为输出返回。
立即学习“Java免费学习笔记(深入)”;
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中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号