在程序定点化时,往往为了满足精度,会把一些32 bits结果转成2个16 bit数据来存储而不是简单取高16bit.这也是 Double precision Format出现的大原因:

 

/*****************************************************************************
 *                                                                           *
 *  Function L_Extract()                                                     *
 *                                                                           *
 *  Extract from a 32 bit integer two 16 bit DPF.                            *
 *                                                                           *
 *  Arguments:                                                               *
 *                                                                           *
 *   L_32      : 32 bit integer.                                             *
 *               0x8000 0000 <= L_32 <= 0x7fff ffff.                         *
 *   hi        : b16 to b31 of L_32                                          *
 *   lo        : (L_32 - hi<<16)>>1                                          *
 *****************************************************************************
*/

void L_Extract (Word32 L_32, Word16 *hi, Word16 *lo)
{
    *hi = extract_h (L_32);
    *lo = extract_l (L_msu (L_shr (L_32, 1), *hi, 16384));
    return;
}

 

 

相关文章:

  • 2022-12-23
  • 2021-09-17
  • 2021-11-12
  • 2021-10-15
  • 2021-12-29
  • 2021-11-26
  • 2021-07-28
猜你喜欢
  • 2022-12-23
  • 2021-12-28
  • 2022-12-23
  • 2021-07-20
  • 2022-12-23
  • 2022-01-23
  • 2022-12-23
相关资源
相似解决方案