反转给定数字的实际位

给定一个非负整数 N 1.问题是要颠倒 N 并打印反转位后获得的数字。请注意,数字的实际二进制表示用于位反转,不考虑前导0。 例如:

null
Input : 11Output : 13(11)10 = (1011)2.After reversing the bits we get:(1101)2 = (13)10.Input : 10Output : 5(10)10 = (1010)2.After reversing the bits we get:(0101)2 = (101)2        = (5)10.

在这种方法中,一个接一个的二进制位表示 N 通过按位右移运算获得,并在 牧师 借助于按位左移位操作。 算法:

图片[1]-反转给定数字的实际位-yiteyi-C++库

C++

// C++ implementation to reverse bits of a number
#include <bits/stdc++.h>
using namespace std;
// function to reverse bits of a number
unsigned int reverseBits(unsigned int n)
{
unsigned int rev = 0;
// traversing bits of 'n' from the right
while (n > 0)
{
// bitwise left shift
// 'rev' by 1
rev <<= 1;
// if current bit is '1'
if (n & 1 == 1)
rev ^= 1;
// bitwise right shift
// 'n' by 1
n >>= 1;
}
// required number
return rev;
}
// Driver program to test above
int main()
{
unsigned int n = 11;
cout << reverseBits(n);
return 0;
}


JAVA

// Java implementation to
// reverse bits of a number
class GFG
{
// function to reverse bits of a number
public static int reverseBits( int n)
{
int rev = 0 ;
// traversing bits of 'n'
// from the right
while (n > 0 )
{
// bitwise left shift
// 'rev' by 1
rev <<= 1 ;
// if current bit is '1'
if (( int )(n & 1 ) == 1 )
rev ^= 1 ;
// bitwise right shift
//'n' by 1
n >>= 1 ;
}
// required number
return rev;
}
// Driver code
public static void main(String[] args)
{
int n = 11 ;
System.out.println(reverseBits(n));
}
}
// This code is contributed
// by prerna saini.


Python3

# Python 3 implementation to
# reverse bits of a number
# function to reverse
# bits of a number
def reverseBits(n) :
rev = 0
# traversing bits of 'n' from the right
while (n > 0 ) :
# bitwise left shift 'rev' by 1
rev = rev << 1
# if current bit is '1'
if (n & 1 = = 1 ) :
rev = rev ^ 1
# bitwise right shift 'n' by 1
n = n >> 1
# required number
return rev
# Driver code
n = 11
print (reverseBits(n))
# This code is contributed
# by Nikita Tiwari.


C#

// C# implementation to
// reverse bits of a number
using System;
class GFG
{
// function to reverse bits of a number
public static int reverseBits( int n)
{
int rev = 0;
// traversing bits of 'n'
// from the right
while (n > 0)
{
// bitwise left shift
// 'rev' by 1
rev <<= 1;
// if current bit is '1'
if (( int )(n & 1) == 1)
rev ^= 1;
// bitwise right shift
//'n' by 1
n >>= 1;
}
// required number
return rev;
}
// Driver code
public static void Main()
{
int n = 11;
Console.WriteLine(reverseBits(n));
}
}
// This code is contributed
// by vt_m.


PHP

<?php
// PHP implementation to reverse
// bits of a number
// function to reverse
// bits of a number
function reverseBits( $n )
{
$rev = 0;
// traversing bits of 'n'
// from the right
while ( $n > 0)
{
// bitwise left shift
// 'rev' by 1
$rev <<= 1;
// if current bit is '1'
if ( $n & 1 == 1)
$rev ^= 1;
// bitwise right shift
// 'n' by 1
$n >>= 1;
}
// required number
return $rev ;
}
// Driver code
$n = 11;
echo reverseBits( $n );
// This code is contributed by mits
?>


Javascript

<script>
// JavaScript program  to
// reverse bits of a number
// function to reverse bits of a number
function reverseBits(n)
{
let rev = 0;
// traversing bits of 'n'
// from the right
while (n > 0)
{
// bitwise left shift
// 'rev' by 1
rev <<= 1;
// if current bit is '1'
if ((n & 1) == 1)
rev ^= 1;
// bitwise right shift
//'n' by 1
n >>= 1;
}
// required number
return rev;
}
// Driver code
let n = 11;
document.write(reverseBits(n));
</script>


输出:

13

时间复杂度:O(num),其中 号码 是二进制表示形式中的位数 N .

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享