整数的位可以取反以获得另一个数字。一个例子如下:
Number = 11 Binary representation = 1011 Reversed binary representation = 1101 Reversed number = 13
演示此的程序如下所示-
public class Example { public static void main(String[] args) { int num = 14; int n = num; int rev = 0; while (num > 0) { rev <<= 1; if ((int)(num & 1) == 1) rev ^= 1; num >>= 1; } System.out.println("The original number is: " + n); System.out.println("The number with reversed bits is: " + rev); } }
输出结果
The original number is: 14 The number with reversed bits is: 7
现在让我们了解上面的程序。
编号已定义。然后使用while循环来反转数字的位。证明这一点的代码片段如下所示-
int num = 14; int n = num; int rev = 0; while (num > 0) { rev <<= 1; if ((int)(num & 1) == 1) rev ^= 1; num >>= 1; }
最后,显示数字以及反向数字。证明这一点的代码片段如下所示-
System.out.println("The original number is: " + n); System.out.println("The number with reversed bits is: " + rev);