How to get the bitwise right-rotation of X by N positions (right circular shift) using bitset in C++

1 Answer

0 votes
#include <bitset>
#include <cstdint>
#include <iostream>

// C++ 20 (and above)
 
int main()
{
    // constexpr T rotr( T x, int s ) noexcept;

    const std::uint8_t i = 0b10011101;
    std::cout << "i          = " << std::bitset<8>(i) << '\n';
    std::cout << "rotr(i, 0) = " << std::bitset<8>(std::rotr(i, 0)) << '\n';
    std::cout << "rotr(i, 1) = " << std::bitset<8>(std::rotr(i, 1)) << '\n';
    std::cout << "rotr(i, 2) = " << std::bitset<8>(std::rotr(i, 2)) << '\n';
    std::cout << "rotr(i, 4) = " << std::bitset<8>(std::rotr(i, 4)) << '\n';
}


/*
run:

i          = 10011101
rotr(i, 0) = 10011101
rotr(i, 1) = 11001110
rotr(i, 2) = 01100111
rotr(i, 4) = 11011001

*/

 



answered Oct 13, 2024 by avibootz

Related questions

1 answer 65 views
1 answer 80 views
1 answer 159 views
159 views asked May 6, 2025 by avibootz
1 answer 187 views
1 answer 151 views
...