论坛风格切换切换到宽版
  • 4884阅读
  • 6回复

谁能告诉我STM32F4 的DSP库里的FFT函数中这个U是表示什么吗。 [复制链接]

上一主题 下一主题
离线BH7JRE
 
发帖
388
只看楼主 倒序阅读 0楼 发表于: 2012-10-07

   STM32F4 的DSP库里的FFT函数中看到个不明白的东西。

有谁知道这东西是表示什么吗。常数?变量?F12查找。没找到定义的出处。


/* write output */
    *pOut1++ = (outR << 1u);
    *pOut1++ = (outI << 1u);
    /* write complex conjugate output */
    *pOut2-- = -(outI << 1u);
    *pOut2-- = (outR << 1u);
    /* update coefficient pointer */
    pCoefB = pCoefB + (modifier * 2u);
    pCoefA = pCoefA + ((modifier * 2u) - 1u);
    i--;
  }
  pDst[2u * fftLen] = pSrc[0] - pSrc[1];
  pDst[(2u * fftLen) + 1u] = 0;
  pDst[0] = pSrc[0] + pSrc[1];
  pDst[1] = 0;

while(fftLen > 0u)
}
离线ironman
发帖
1913
只看该作者 1楼 发表于: 2012-10-08
u应该是表示unsigned long吧.
一朵浮云,漂来漂去.
离线BI7LNQ
发帖
599
只看该作者 2楼 发表于: 2012-10-08
表示无符号数。C语言基础问题啊
离线BH7JRE
发帖
388
只看该作者 3楼 发表于: 2012-10-08
为什么要这样用呢。

直接用常数行不行呢。好像无符号数和正有符号数是没有区别的吧。除了一个值的范围
离线BI7LNQ
发帖
599
只看该作者 4楼 发表于: 2012-10-08
有些时候是有关系的

比如 1<<31的时候

如果1是无符号数,可以得到0x80000000,没问题。但是如果是有符号的1,最高位是符号位,代表数值的只有31bit,再象左移动31bit有些编译器会告诉你可能超出移位范围。编译器不知道你是笔误还是真的就希望如此。

准确告知编译器自己的意图才是王道。
离线BD8NCF
发帖
2079
只看该作者 5楼 发表于: 2012-10-19
回 BH7JRE 的帖子
BH7JRE:为什么要这样用呢。
直接用常数行不行呢。好像无符号数和正有符号数是没有区别的吧。除了一个值的范围
 (2012-10-08 11:53) 

这个就是常数,无符号常数
据当地法律法规和政策,部分签名未予显示。
离线BH7JRE
发帖
388
只看该作者 6楼 发表于: 2012-10-19
谢谢。我知道了。一般的书里面不说这个。可能是太基本了。