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不能用此表达式?还是我有些问题没注意到?请大虾们指教