奇怪的问题

第1段:
int16_t data;
const char pcm_data2[] = {…};

data = pcm_data2[i];
data += pcm_data2[i+1]<<8;

第2段:
data = ((int16_t)pcm_data2[i+1] << 8 + pcm_data2[i]);

很奇怪,上面2段代码,在STM32F401上用MDK编译出来执行的结果不一样。第1段执行出来的结果是正确的,第2段执行出来的结果是错误的,并且不知道是怎么算出来的。

 

 

发表评论

邮箱地址不会被公开。 必填项已用*标注