Best practices for circular shift (rotate) operations in C++

前端 未结 16 1769
情深已故
情深已故 2020-11-22 00:09

Left and right shift operators (<< and >>) are already available in C++. However, I couldn\'t find out how I could perform circular shift or rotate operations.

16条回答
  •  南方客
    南方客 (楼主)
    2020-11-22 00:56

    Definitively:

    template
    T ror(T x, unsigned int moves)
    {
      return (x >> moves) | (x << sizeof(T)*8 - moves);
    }
    

提交回复
热议问题