
要求:以效率最高的方式实现
示例:
“abcde” --2-->"deabc"
"abcde"--8-->"cdeab"
void right_shift_r(const char* src,char* result,unsigned int n)
{
unsigned int len = strlen(src)
int i=0
for(i=0i<leni++)
{
result[i] = src[i+n]%len
}
}
C语言中,“<<”为左移运算符,“>>”为右移运算符。具体使用方法如下:
1、左移运算符(<<)
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a
=
a
<<
2
将a的二进制位左移2位,右补0,
左移1位后a
=
a
*
2
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以汪颂2。
2、右移运算符(>>)
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右困唯郑边丢弃。
*** 作数每右移一位,相当于该数除以2。
例如:a
=
a
>>山旅
2
将a的二进制位右移2位。
左补0
or
补1
得看被移数是正还是负。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)