标题: 51单片机长整数左右移的问题? [打印本页]

作者: sz15207554653    时间: 2016-9-24 09:13
标题: 51单片机长整数左右移的问题?
51单片机整数左右移,我明白;但长整数左右移,不明白什么意思?
比如整数左移:
a = 0xA5A5;
b = _irol_(a,1); // a = 1010 0101 1010 0101; A5A5;整数左移之后
                        //-->b = 0100 1011 0100 1011; 4B4B;

比如长整数左移:
a = 0xA5A5;
b = _lrol_(a,1); // a = 1010 0101 1010 0101; A5A5;长整数左移之后
                        //-->b = ?????????b是多少呢?


作者: sz15207554653    时间: 2016-9-27 16:09
怎么没大神赐教啊?
作者: 51hei团团    时间: 2018-10-14 16:52
长整型左右移的目的是什么?
作者: Y_G_G    时间: 2018-10-14 23:32
右移,要么是在读写数据的时候用,要么是汇编的/2运算,你在C中把一个16进制的数右移,没有太大的意义
至于运行的结果:C位变成最高位,之前的所有二进制数都右移一个位,也就是/2运算,运算的结果取决于两点:C位和位移带不带C位
不带C位的话就是之前的最低变成最高位,因为我不会C,不知道C的位移带不带进位的
说一下,C位就是标志位




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1