移位操作之旋转移位

Posted clnchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移位操作之旋转移位相关的知识,希望对你有一定的参考价值。

 所谓旋转就是一端的位数移出字长后又插入到还有一端中

unsigned char RoL(unsigned char c,int b)
{
	int tmp;
	for(int i=0;i<b;++i)
	{
	if(c & 0x80)
		{
          tmp=1;
		}
		else
		{
            tmp=0;
		}

		c <<= 1;

		c |= tmp;
	}

	return c;

}

unsigned char RoR(unsigned char c,int b)
{
	int tmp;
	for(int i=0;i<b;++i)
	{
		if(c & 1)
		{
        tmp=1;
		}
		else
		{
			tmp=0;
		}
		c >>= 1;
		c |= (tmp << (sizeof(c)*8-1));
	}
 return c;
}
void  main()
{ 
	unsigned char a=5;


	int b=RoL(a,2);  //10100
	int c=RoR(a,2);  //01000001         00000101
}



以上是关于移位操作之旋转移位的主要内容,如果未能解决你的问题,请参考以下文章

k旋转移位数组并找到x?

[日常] 算法-旋转字符串-暴力移位法

java移位运算符右操作数是负数,成功拿下大厂offer

按位旋转是不是比当前 Intel CPU 上的移位慢?

带有中心裁剪的 Keras ImageDataGenerator 用于旋转和平移移位

Arcgis应用栅格数据翻转(Flip)镜像(Mirror)重缩放(Rescale)旋转(Rotate)移位(Shift)弯曲(Warp)