读书人

uvision4中char型数据的左移右移操作是

发布时间: 2014-01-22 14:50:12 作者: rapoo

uvision4中char型数据的左移右移操作是怎么回事儿?
for(BitCnt=0;BitCnt<8;BitCnt++)
{
_Nop();
SCL=0; /*置时钟线为低,准备接收数据位*/
_Nop();
_Nop(); /*时钟低电平周期大于4.7μs*/
_Nop();
_Nop();
_Nop();
SCL=1; /*置时钟线为高使数据线上数据有效*/
_Nop();
_Nop();
retc=retc<<1;
if(SDA==1)retc=retc+1; /*读数据位,接收的数据位放入retc中 */
_Nop();
_Nop();
}
这个时候是不是先把这个char型的数据转换成了16进制的0x0000.然后再移动的?
[解决办法]

引用:
Quote: 引用:

直接左移的,不过不同的处理器之间应该有点细微的差异

直接左移是指向了他的下一个字符么?


不是,是当前字节
[解决办法]
引用:
Quote: 引用:

直接左移的,不过不同的处理器之间应该有点细微的差异

直接左移是指向了他的下一个字符么?

比如0x0f,左移1位后就是0x1e
[解决办法]

左移就是x2,右移就是/2。

0010<<1 ---> 0100
0010>>1 ---> 0001

读书人网 >单片机

热点推荐