循环左移 和循环右移是什么意思啊

 我来答
帐号已注销
2019-09-19 · TA获得超过25.9万个赞
知道小有建树答主
回答量:2206
采纳率:96%
帮助的人:82.2万
展开全部

循环移位就是把数值变成二进制,然后循环移动的过程。

换句话说,循环移位就是将移出的低位放到该数的高位(循环右移)或把移出的高位放到该数的低位(循环左移),左移,和右移动都是对整数进行的操作,在Win32控制台应用程序中,整形占4Byte节32bit。

 循环左移的过程可以分为3步: 

1、将x左端的n位先移动到y的低n位中,x>>(32-n); 

2、将x左移n位,其右面低位补0,x<<n; 

3、进行按位或运算(x >> (32 - n) | (x << n));

 循环右移的过程可以分为3步: 

1、将x的左端的低n位先移动到y的高n位中x<<(32-n) 

2、将x右移n位,其左面高n位补0x>>n;

3、进行按位或操作(x << (32 - n) | (x >> n));

扩展资料

C语言实现循环移位:循环移位是对二进制序列进行操作,所以实现循环移位先需要将需要移位的数转换为二进制序列,然后按照上面描述的步骤进行移位,最后将移位后的二进制序列打印出来。

所谓循环移位是指在移位时不丢失移位前原范围的位,而是将它们作为另一端的补入位。例如循环右移n位,指各位右移n位,原来的低n位变成高n位,指各位右移n位,原来的低n位变成高n位。

用到循环移位的操作时,在汇编里面是比较容易实现的,ror,rol指令就行了。利用位运算进行循环移位操作比较容易理解。如果不是循环移位,使用x<<n(左移n位),x>>n右移n位。

参考资料来源:百度百科—循环移位运算

帐号已注销
2021-06-10 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

C51单片机的循环左移函数是,_crol_(变量名,n),循环右移函数是,_cror_(变量名,n),函数中的“循环”是指变量的8位二进制数依次向左移一位,或向右移一位。

比如的,取8位数,让1111 1110循环左移一位,就是在1111 1110、1111 1101、1111 1011、1111 0111、1110 1111,等等,每移位一次,8位数向左或向右移一位。继续移位,就会循环重复的。

循环左移分析

假如数据为无符号的数,长度为N,需要循环移动n位。可以用下面的公式:

循环左移n位: (x>>(N - n) ) | (x<<n);

循环右移n位: (x<<(N - n) ) | (x>>n)。

用到循环移位的操作时,在汇编里面是比较容易实现的,ror,rol指令就行了。利用位运算进行循环移位操作比较容易理解。如果不是循环移位,使用x<<n(左移n位),x>>n右移n位。

以上内容参考:百度百科-循环移位运算

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
820229268
推荐于2017-09-03 · TA获得超过171个赞
知道答主
回答量:30
采纳率:0%
帮助的人:8.5万
展开全部
就是把数值变成二进制然后循环移动 例如 char c=0x49; 换成二进制也就是 0100 1001 循环右移一位是 1010 0100 循环左移一位是1001 0010
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
诸葛乐亦1121
2020-01-22 · TA获得超过134个赞
知道小有建树答主
回答量:1972
采纳率:100%
帮助的人:26.4万
展开全部
循环移位就是把数值变成二进制,然后循环移动的过程。
换句话说,循环移位就是将移出的低位放到该数的高位(循环右移)或把移出的高位放到该数的低位(循环左移),左移,和右移动都是对整数进行的操作,在Win32控制台应用程序中,整形占4Byte节32bit。
循环左移的过程可以分为3步:
1、将x左端的n位先移动到y的低n位中,x>>(32-n);
2、将x左移n位,其右面低位补0,x<<n;
3、进行按位或运算(x
>>
(32
-
n)
|
(x
<<
n));

循环右移的过程可以分为3步:
1、将x的左端的低n位先移动到y的高n位中x<<(32-n)
2、将x右移n位,其左面高n位补0x>>n;
3、进行按位或操作(x
<<
(32
-
n)
|
(x
>>
n));

扩展资料
C语言实现循环移位:循环移位是对二进制序列进行操作,所以实现循环移位先需要将需要移位的数转换为二进制序列,然后按照上面描述的步骤进行移位,最后将移位后的二进制序列打印出来。
所谓循环移位是指在移位时不丢失移位前原范围的位,而是将它们作为另一端的补入位。例如循环右移n位,指各位右移n位,原来的低n位变成高n位,指各位右移n位,原来的低n位变成高n位。
用到循环移位的操作时,在汇编里面是比较容易实现的,ror,rol指令就行了。利用位运算进行循环移位操作比较容易理解。如果不是循环移位,使用x<>n右移n位。
参考资料来源:百度百科—循环移位运算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式