
单片机中整数循环左移_irol,整数循环右移_iror。这个整数怎么移位的呢? 位移位我懂。
a=0xA5A5;b=_irol_(a,1);//bnowis0xD2D2我不明白左移的过程。请各位给咱这个菜鸟解答。百度搜不出来。下面是帮助文件的写法:#include...
a = 0xA5A5;
b = _irol_(a,1); // b now is 0xD2D2
我不明白左移的过程。请各位给咱这个菜鸟解答。百度搜不出来。
下面是帮助文件的写法:
#include <intrins.h>
void tst_iror (void) {
int a;
int b;
a = 0xA5A5;
b = _irol_(a,1); /* b now is 0xD2D2 */
}
a:A5A5: 10100101 10100101
b:D2D2: 11010010 11010010
如果按一楼的回答,如果a位左移1一个整数位就是位左移1位?那结果应该是 01001011 01001011这个结果是4B4B啊。没大懂,能不能详细的写下整数循环左移1位的步骤,谢谢 展开
b = _irol_(a,1); // b now is 0xD2D2
我不明白左移的过程。请各位给咱这个菜鸟解答。百度搜不出来。
下面是帮助文件的写法:
#include <intrins.h>
void tst_iror (void) {
int a;
int b;
a = 0xA5A5;
b = _irol_(a,1); /* b now is 0xD2D2 */
}
a:A5A5: 10100101 10100101
b:D2D2: 11010010 11010010
如果按一楼的回答,如果a位左移1一个整数位就是位左移1位?那结果应该是 01001011 01001011这个结果是4B4B啊。没大懂,能不能详细的写下整数循环左移1位的步骤,谢谢 展开
3个回答
展开全部
_crol_ 字符循环左移
_cror_ 字符循环右移
_irol_ 整数循环左移
_iror_ 整数循环右移
_lrol_ 长整数循环左移
_lror_ 长整数循环右移
你的这个结果是错的
a = 0xA5A5;
b = _irol_(a,1) ; 执行后 b=0x4b4b;
按照你的结果应给是这样:
a = 0xA5A5;
b = _iror_(a,1) ; 执行后 b=0xd2d2;
PS: _iror_(a,1) 表示把变量a 循环右移1位
_cror_ 字符循环右移
_irol_ 整数循环左移
_iror_ 整数循环右移
_lrol_ 长整数循环左移
_lror_ 长整数循环右移
你的这个结果是错的
a = 0xA5A5;
b = _irol_(a,1) ; 执行后 b=0x4b4b;
按照你的结果应给是这样:
a = 0xA5A5;
b = _iror_(a,1) ; 执行后 b=0xd2d2;
PS: _iror_(a,1) 表示把变量a 循环右移1位
展开全部
既然你懂位移位,你把操作数A5A5和结果转换成二进制就明白了:
A5A5: 1010010110100101
D2D2: 1101001011010010
其中D2D2是操作数a左移1位后得到的结果,末尾补零,最高位的1是标志位。
A5A5: 1010010110100101
D2D2: 1101001011010010
其中D2D2是操作数a左移1位后得到的结果,末尾补零,最高位的1是标志位。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从结果看,这可是循环右移啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询