VOOZH about

URL: https://www.geeksforgeeks.org/dsa/swap-every-two-bits-bytes/

⇱ Swap every two bits in bytes - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Swap every two bits in bytes

Last Updated : 22 May, 2022

Swap all the pair of bits in a byte. Before swapping: 11-10-11-01 After swapping: 11-01-11-10
Examples: 
 

Input : 00000010
Output : 00000001

Input : 00000100
Output : 00001000


 


Approach: 
x = ((x & 0x55555555) >> 1) | ((x & 0xAAAAAAAA) <> 1 extracts the high bit position and shifts it to the low bit position. 
Similarly the expression (x & 0xAAAAAAAA) << 1 extracts the low bit from each pair and shifts it to the high bit position. 
The two parts are then combined using bitwise-OR. 
 

x= 00011010
((x & 0xAAAAAAAA) >> 1) = 00001010 >> 1
 = 00000101
((x & 0x55555555) << 1) = 00010000 <> 1) | ((x & 0x55555555) << 1) = 00100101


Below is the implementation of the above idea:  

Output: 
 

8


Time Complexity: O(1)

Space Complexity: O(1)

Reference: 
https://stackoverflow.com/questions/4788799/swap-every-pair-of-bits-in-byte


 

Comment
Article Tags: