00问答网
所有问题
什么是左循环位移和右循环位移,它们的区别是什么
如题所述
举报该问题
推荐答案 2007-10-21
循环移位就是在移位的时候,移出去的位不是丢掉,而是补到另一边。
循环移位在汇编中可以用指令实现,在C语言中没有这种运算符,比较麻烦。
以32位移位来说,可以定义如下两个宏
#define ROTATE_LEFT(x,n) (((x)<<(n))|((x)>>(32-(n))))
#define ROTATE_RIGHT(x,n) (((x)>>(n))|((x)<<(32-(n))))
分别是将x左移和右移n位,注意x应为无符号长整型,n不要超出范围。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/r0IeT0rn.html
其他回答
第1个回答 2007-10-21
比如一个二进制数
11000101
左循环位移 2位就是
00010111
右循环位移 2位就是
01110001
相似回答
左
移和右
移有
什么区别
?
答:
1、左移运算符(<<):按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零
。格式:需要移位的数字 << 移位的次数 例如:3<<2 3转换为二进制是0011,所有数字左移2个位置,空位补0,得到1100,即十进制数12。2、右移运算符(>>):按二进制把所有的数字向右移动对应...
汇编语言中
什么叫
带进位
循环左
、右移呢?能用通俗的话概括一下么?_百度...
答:
带进位
循环左
移后,最高
位移
入进位位,此时,进位位C为1,数为0000 0010 。再左移一次,进位位的1移到最低位,此时,进位位为0,数为0000 0101 。带进位
循环右
移的话,数为0100 0000,进位位C为1,再移一次,则进位位移入最高位,进位位变成0 ,数为1010 0000 ...
移位指令和
循环
移位指令
的区别是什么
答:
一、
位移
指令 具体含义:SHL: 逻辑左移;SAL: 算术左移;SHR: 逻辑右移;SAR: 算术右移 具体用法:SHR:每位右
移,
低位进 CF, 高位补 0;SAR:每位右移, 低位进 CF, 高位不变
,它们的
结果影响 OF、SF、ZF、PF、二、循环移位指令 具体含义:ROL:
循环左
移;ROR:
循环右
移;RCL: 带进位循环左...
寄存器小
循环左移和
寄存器逻辑左移有
什么区别
?
答:
寄存器小循环左移和寄存器逻辑左移都是指对寄存器中的位进行移位操作的方式,它们的区别如下:移位方式:寄存器小循环左移是循环移位
,即将最高位移出并添加到最低位,而寄存器逻辑左移是逻辑移位,即将每一位都向左移动指定的位数,不会循环移位。移位结果:寄存器小循环左移的结果是寄存器中的位循环移位...
大家正在搜
变形和位移有什么区别和联系
循环位移怎么位移
循环移位矩阵是什么
位移和位矢的区别
实位移与虚位移的区别与联系
位移比和层间位移比区别
FX5U的循环位移怎么用
距离和位移的区别
路径和位移的区别