这里写自定义目录标题
c++ 实现循环移位
#include <stdio.h>
#include <Windows.h>
/*
功能:循环位移
参数:
T:模板数据
n:位移的大小
direction:方向,1为右,2为左
*/
template <typename T>
T bit_move(T val, int n, bool direction)
{
int size = sizeof(val)*8;
n = n%size;
if(direction)
{
return (val << (size- n) | (val >> n));
}
return (val >> (size - n) | (val << n));
}
int main()
{
//int a = 32;
//int b = bit_move(a, 7, true);// 1073741824
byte c = 0x36;
byte d = bit_move(c, 13, false);//198
system("pause");
return 0;
}