Skip to main content

Swap all adjacent bits in given number

Here given code implementation process.

// C program 
// Swap all adjacent bits in given number
#include <stdio.h>

// Swap the pair of adjacent bits
void swapBits(int num)
{
    // 0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
    // 0x55555555 (01010101010101010101010101010101) (1431655765)
    // (num & 0xAAAAAAAA) Get the set bits in Even position of num
    // (num & 0x55555555) Get the set bits in Odd position of num
    // ((Even active bits) >> 1) shift 1 bits right side
    // ((Odd active bits) << 1)  shift 1 bits left side
    int result =  (((num & 0xAAAAAAAA) >> 1) | ((num & 0x55555555) << 1));

    // Display given number
    printf("\n Number : %d",num);
    // Display calculated result 
    printf("\n Result : %d",result);
}
int main(int argc, char const *argv[])
{
    
    // (37)    100101
    //         10 01 01
    //         01 10 10
    // Result  (011010) (26)
    swapBits(37);
    // (216)    11011000
    //          11 01 10 00
    // Swap     11 10 01 00
    // Result  (11100100) (228)
    swapBits(216);
    // (42)     101010
    //          10 10 10
    // Swap     01 01 01
    // Result  (010101) (21)
    swapBits(42);


    return 0;
}

Output

 Number : 37
 Result : 26
 Number : 216
 Result : 228
 Number : 42
 Result : 21
/*
  Java program
  Swap all adjacent bits in given number
*/
public class BitSwap
{
	// Swap the pair of adjacent bits
	public void swapBits(int num)
	{
		// 0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
		// 0x55555555 (01010101010101010101010101010101) (1431655765)
		// (num & 0xAAAAAAAA) Get the set bits in Even position of num
		// (num & 0x55555555) Get the set bits in Odd position of num
		// ((Even active bits) >> 1) shift 1 bits right side
		// ((Odd active bits) << 1)  shift 1 bits left side
		int result = (((num & 0xAAAAAAAA) >> 1) | ((num & 0x55555555) << 1));
		// Display given number
		System.out.print("\n Number : " + num);
		// Display calculated result 
		System.out.print("\n Result : " + result);
	}
	public static void main(String[] args)
	{
		BitSwap task = new BitSwap();
		// (37)    100101
		//         10 01 01
		//         01 10 10
		// Result  (011010) (26)
		task.swapBits(37);
		// (216)    11011000
		//          11 01 10 00
		// Swap     11 10 01 00
		// Result  (11100100) (228)
		task.swapBits(216);
		// (42)     101010
		//          10 10 10
		// Swap     01 01 01
		// Result  (010101) (21)
		task.swapBits(42);
	}
}

Output

 Number : 37
 Result : 26
 Number : 216
 Result : 228
 Number : 42
 Result : 21
// Include header file
#include <iostream>

using namespace std;
/*
  C++ program
  Swap all adjacent bits in given number
*/
class BitSwap
{
	public:
		// Swap the pair of adjacent bits
		void swapBits(int num)
		{
			// 0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
			// 0x55555555 (01010101010101010101010101010101) (1431655765)
			// (num &0xAAAAAAAA) Get the set bits in Even position of num
			// (num &0x55555555) Get the set bits in Odd position of num
			// ((Even active bits) >> 1) shift 1 bits right side
			// ((Odd active bits) << 1)  shift 1 bits left side
			int result = (((num &0xAAAAAAAA) >> 1) | ((num &0x55555555) << 1));
			// Display given number
			cout << "\n Number : " << num;
			// Display calculated result
			cout << "\n Result : " << result;
		}
};
int main()
{
	BitSwap task = BitSwap();
	// (37)    100101
	//         10 01 01
	//         01 10 10
	// Result  (011010) (26)
	task.swapBits(37);
	// (216)    11011000
	//          11 01 10 00
	// Swap     11 10 01 00
	// Result  (11100100) (228)
	task.swapBits(216);
	// (42)     101010
	//          10 10 10
	// Swap     01 01 01
	// Result  (010101) (21)
	task.swapBits(42);
	return 0;
}

Output

 Number : 37
 Result : 26
 Number : 216
 Result : 228
 Number : 42
 Result : 21
// Include namespace system
using System;
/*
  C# program
  Swap all adjacent bits in given number
*/
public class BitSwap
{
	// Swap the pair of adjacent bits
	public void swapBits(int num)
	{
		// 0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
		// 0x55555555 (01010101010101010101010101010101) (1431655765)
		// (num & 0xAAAAAAAA) Get the set bits in Even position of num
		// (num & 0x55555555) Get the set bits in Odd position of num
		// ((Even active bits) >> 1) shift 1 bits right side
		// ((Odd active bits) << 1)  shift 1 bits left side
		long result = (((num & 0xAAAAAAAAL) >> 1) | ((num & 0x55555555L) << 1));
		// Display given number
		Console.Write("\n Number : " + num);
		// Display calculated result
		Console.Write("\n Result : " + result);
	}
	public static void Main(String[] args)
	{
		BitSwap task = new BitSwap();
		// (37)    100101
		//         10 01 01
		//         01 10 10
		// Result  (011010) (26)
		task.swapBits(37);
		// (216)    11011000
		//          11 01 10 00
		// Swap     11 10 01 00
		// Result  (11100100) (228)
		task.swapBits(216);
		// (42)     101010
		//          10 10 10
		// Swap     01 01 01
		// Result  (010101) (21)
		task.swapBits(42);
	}
}

Output

 Number : 37
 Result : 26
 Number : 216
 Result : 228
 Number : 42
 Result : 21
<?php
/*
  Php program
  Swap all adjacent bits in given number
*/
class BitSwap
{
	// Swap the pair of adjacent bits
	public	function swapBits($num)
	{
		// 0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
		// 0x55555555 (01010101010101010101010101010101) (1431655765)
		// (num & 0xAAAAAAAA) Get the set bits in Even position of num
		// (num & 0x55555555) Get the set bits in Odd position of num
		// ((Even active bits) >> 1) shift 1 bits right side
		// ((Odd active bits) << 1)  shift 1 bits left side
		$result = ((($num & 0xAAAAAAAA) >> 1) | (($num & 0x55555555) << 1));
		// Display given number
		echo "\n Number : ". $num;
		// Display calculated result
		echo "\n Result : ". $result;
	}
}

function main()
{
	$task = new BitSwap();
	// (37)    100101
	//         10 01 01
	//         01 10 10
	// Result  (011010) (26)
	$task->swapBits(37);
	// (216)    11011000
	//          11 01 10 00
	// Swap     11 10 01 00
	// Result  (11100100) (228)
	$task->swapBits(216);
	// (42)     101010
	//          10 10 10
	// Swap     01 01 01
	// Result  (010101) (21)
	$task->swapBits(42);
}
main();

Output

 Number : 37
 Result : 26
 Number : 216
 Result : 228
 Number : 42
 Result : 21
/*
  Node Js program
  Swap all adjacent bits in given number
*/
class BitSwap
{
	// Swap the pair of adjacent bits
	swapBits(num)
	{
		// 0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
		// 0x55555555 (01010101010101010101010101010101) (1431655765)
		// (num & 0xAAAAAAAA) Get the set bits in Even position of num
		// (num & 0x55555555) Get the set bits in Odd position of num
		// ((Even active bits) >> 1) shift 1 bits right side
		// ((Odd active bits) << 1)  shift 1 bits left side
		var result = (((num & 0xAAAAAAAA) >> 1) | ((num & 0x55555555) << 1));
		// Display given number
		process.stdout.write("\n Number : " + num);
		// Display calculated result
		process.stdout.write("\n Result : " + result);
	}
}

function main()
{
	var task = new BitSwap();
	// (37)    100101
	//         10 01 01
	//         01 10 10
	// Result  (011010) (26)
	task.swapBits(37);
	// (216)    11011000
	//          11 01 10 00
	// Swap     11 10 01 00
	// Result  (11100100) (228)
	task.swapBits(216);
	// (42)     101010
	//          10 10 10
	// Swap     01 01 01
	// Result  (010101) (21)
	task.swapBits(42);
}
main();

Output

 Number : 37
 Result : 26
 Number : 216
 Result : 228
 Number : 42
 Result : 21
#   Python 3 program
#   Swap all adjacent bits in given number

class BitSwap :
	#  Swap the pair of adjacent bits
	def swapBits(self, num) :
		#  0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
		#  0x55555555 (01010101010101010101010101010101) (1431655765)
		#  (num & 0xAAAAAAAA) Get the set bits in Even position of num
		#  (num & 0x55555555) Get the set bits in Odd position of num
		#  ((Even active bits) >> 1) shift 1 bits right side
		#  ((Odd active bits) << 1)  shift 1 bits left side
		result = (((num & 0xAAAAAAAA) >> 1) | ((num & 0x55555555) << 1))
		#  Display given number
		print("\n Number : ", num, end = "")
		#  Display calculated result 
		print("\n Result : ", result, end = "")
	

def main() :
	task = BitSwap()
	#  (37)    100101
	#          10 01 01
	#          01 10 10
	#  Result  (011010) (26)
	task.swapBits(37)
	#  (216)    11011000
	#           11 01 10 00
	#  Swap     11 10 01 00
	#  Result  (11100100) (228)
	task.swapBits(216)
	#  (42)     101010
	#           10 10 10
	#  Swap     01 01 01
	#  Result  (010101) (21)
	task.swapBits(42)

if __name__ == "__main__": main()

Output

 Number :  37
 Result :  26
 Number :  216
 Result :  228
 Number :  42
 Result :  21
#   Ruby program
#   Swap all adjacent bits in given number

class BitSwap 
	#  Swap the pair of adjacent bits
	def swapBits(num) 
		#  0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
		#  0x55555555 (01010101010101010101010101010101) (1431655765)
		#  (num & 0xAAAAAAAA) Get the set bits in Even position of num
		#  (num & 0x55555555) Get the set bits in Odd position of num
		#  ((Even active bits) >> 1) shift 1 bits right side
		#  ((Odd active bits) << 1)  shift 1 bits left side
		result = (((num & 0xAAAAAAAA) >> 1) | ((num & 0x55555555) << 1))
		#  Display given number
		print("\n Number : ", num)
		#  Display calculated result 
		print("\n Result : ", result)
	end

end

def main() 
	task = BitSwap.new()
	#  (37)    100101
	#          10 01 01
	#          01 10 10
	#  Result  (011010) (26)
	task.swapBits(37)
	#  (216)    11011000
	#           11 01 10 00
	#  Swap     11 10 01 00
	#  Result  (11100100) (228)
	task.swapBits(216)
	#  (42)     101010
	#           10 10 10
	#  Swap     01 01 01
	#  Result  (010101) (21)
	task.swapBits(42)
end

main()

Output

 Number : 37
 Result : 26
 Number : 216
 Result : 228
 Number : 42
 Result : 21
/*
  Scala program
  Swap all adjacent bits in given number
*/
class BitSwap
{
	// Swap the pair of adjacent bits
	def swapBits(num: Int): Unit = {
		// 0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
		// 0x55555555 (01010101010101010101010101010101) (1431655765)
		// (num & 0xAAAAAAAA) Get the set bits in Even position of num
		// (num & 0x55555555) Get the set bits in Odd position of num
		// ((Even active bits) >> 1) shift 1 bits right side
		// ((Odd active bits) << 1)  shift 1 bits left side
		var result: Int = (((num & 0xAAAAAAAA) >> 1) | ((num & 0x55555555) << 1));
		// Display given number
		print("\n Number : " + num);
		// Display calculated result
		print("\n Result : " + result);
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: BitSwap = new BitSwap();
		// (37)    100101
		//         10 01 01
		//         01 10 10
		// Result  (011010) (26)
		task.swapBits(37);
		// (216)    11011000
		//          11 01 10 00
		// Swap     11 10 01 00
		// Result  (11100100) (228)
		task.swapBits(216);
		// (42)     101010
		//          10 10 10
		// Swap     01 01 01
		// Result  (010101) (21)
		task.swapBits(42);
	}
}

Output

 Number : 37
 Result : 26
 Number : 216
 Result : 228
 Number : 42
 Result : 21
/*
  Swift 4 program
  Swap all adjacent bits in given number
*/
class BitSwap
{
	// Swap the pair of adjacent bits
	func swapBits(_ num: Int)
	{
		// 0xAAAAAAAA (10101010101010101010101010101010) (2863311530)
		// 0x55555555 (01010101010101010101010101010101) (1431655765)
		// (num & 0xAAAAAAAA) Get the set bits in Even position of num
		// (num & 0x55555555) Get the set bits in Odd position of num
		// ((Even active bits) >> 1) shift 1 bits right side
		// ((Odd active bits) << 1)  shift 1 bits left side
		let result: Int = (((num & 0xAAAAAAAA) >> 1) | ((num & 0x55555555) << 1));
		// Display given number
		print("\n Number : ", num, terminator: "");
		// Display calculated result
		print("\n Result : ", result, terminator: "");
	}
}
func main()
{
	let task: BitSwap = BitSwap();
	// (37)    100101
	//         10 01 01
	//         01 10 10
	// Result  (011010) (26)
	task.swapBits(37);
	// (216)    11011000
	//          11 01 10 00
	// Swap     11 10 01 00
	// Result  (11100100) (228)
	task.swapBits(216);
	// (42)     101010
	//          10 10 10
	// Swap     01 01 01
	// Result  (010101) (21)
	task.swapBits(42);
}
main();

Output

 Number :  37
 Result :  26
 Number :  216
 Result :  228
 Number :  42
 Result :  21




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment