c++ 实现循环移位

这里写自定义目录标题

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值