首页 > Java > java教程 > 正文

在Java中反转给定数字的实际位

PHPz
发布: 2023-09-07 23:41:06
转载
1156 人浏览过

在Java中反转给定数字的实际位

给定一个非负整数 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中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!