第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段执行出来的结果是错误的,并且不知道是怎么算出来的。
第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段执行出来的结果是错误的,并且不知道是怎么算出来的。