这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 怪事!!求解51程序

共2条 1/1 1 跳转至

怪事!!求解51程序

助工
2011-10-17 13:30:40     打赏
unsigned char xdata b ;
unsigned char  xdata   dat_tep[24] ;

dat_tep[13] = 0x27 ;

b = ((dat_tep[13] >> 4) * 8) + dat_tep[13] & 0x0f ;
结果b = 7 ;正确为23才对.

如果改成
b = ((dat_tep[13] >> 4) * 8);
        
b += dat_tep[13] & 0x0f ;

结果b = 23 ;

想不明白为什么用前一个表达式结果会出错,难道51不能用此表达式?还是我有些问题没注意到?请大虾们指教



关键词: 怪事     求解     程序    

助工
2011-10-17 13:36:07     打赏
2楼
你没注意优先级,b = ((dat_tep[13] >> 4) * 8) + dat_tep[13] & 0x0f ; 结果b = 7 ; 是正确的
b = ((dat_tep[13] >> 4) * 8) + (dat_tep[13] & 0x0f);结果b=23

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]