這里用到了_crol_這個外部函數,表達的意思是:循環左移。
這個函數是包含在"intrins.h"中。 這里要注意是循環左移和LED = LED<<1;的區別:
如果這里LED = 0xfe;也就是0x1111 1110;
LED = LED << 1;后LED里的結果為0x1111 1100左移后的一位里填入了0.
而如果是LED = _crol_(LED,1);解釋下里面的兩個參數,LED是將要左移的數據;1表示將要左移的位數,如果為2就是左移2位。
LED = _crol_(LED,1);后的結果為0x1111 1101,向左循環移位時,從左邊出去會從右邊重新補入。 _cror_函數與_crol_函數類似,區別只是進行的是右位移; 注釋:向右循環移位時,從右邊出去會從左邊重新補入。
|