阅读:1651回复:4
如何符号扩展
经ad采样得到的14位补码,进入tms320vc33后如何扩展为32位的补码。(最好是c语言实现),谢了.
|
|
沙发#
发布于:2003-06-27 11:11
假设你的初始数据为A,填充为16位(高两位填0);
1。A=A-1; 2。A=A异或0x3FF; 3。B=A强制转换为32位; 4。B=B异或0xFFFF; 5。B=B+1; B就是你要的结果 |
|
板凳#
发布于:2003-06-27 11:34
最简单的C语言实现(经过实际应用):
unsigned int adc14;//14位ADC植,高位值为0 int adc32; adc32 = (int)adc14; adc32 <<= 18; adc32 >>= 18; 稍复杂一点的 unsigned int adc14;//14位ADC植,高位值为0! int adc32; adc32 = (int)adc14; if((adc14 & 0x2000) == 0x2000) adc32 |= 0xffffc000; 这两种都可以。 |
|
|
地板#
发布于:2003-07-02 18:30
各位还有没有更妙的思路?贴来让大伙开开眼。
|
|
|
地下室#
发布于:2003-07-03 08:24
我感觉lllggg的第一种方法可能运算量会大一些,我用了第二种。另外好像c40的指令系统中有符号扩展这条指令,3x系列就没有发现了
|
|