unpack.c
上传用户:tsjrly
上传日期:2021-02-19
资源大小:107k
文件大小:1k
源码类别:

语音压缩

开发平台:

C/C++

  1. /**************************************************************************
  2. *
  3. * ROUTINE
  4. * unpack (unpack from binary to decimal)
  5. *
  6. * FUNCTION
  7. * Input binary array and number of binary bits,
  8. * program returns unpacked decimal value.
  9. *
  10. * SYNOPSIS
  11. * subroutine unpack(array, bits, value, pointer)
  12. *
  13. *   formal
  14. *
  15. *                       data    I/O
  16. *       name            type    type    function
  17. *       -------------------------------------------------------------------
  18. * array short i array to which one bit is assigned
  19. * for binary representation
  20. * bits int i number of bits to convert
  21. * (ie. 01001 for 5 bits, 1st 0 incl.)
  22. * value int o decimal value to convert to
  23. * pointer int i/o points to appropriate element in
  24. * array
  25. *
  26. ***************************************************************************
  27. *
  28. * DESCRIPTION
  29. *
  30. * This program unpacks binary values packed by pack.c
  31. * into decimal values.
  32. *
  33. ***************************************************************************
  34. *
  35. * CALLED BY
  36. *
  37. * celp  dcodcbg  dcodcbi  dcodpg  dcodtau
  38. *
  39. * CALLS
  40. *
  41. *
  42. *
  43. ***************************************************************************
  44. *
  45. * REFERENCES
  46. *
  47. *
  48. **************************************************************************/
  49. unpack(array, bits, value, pointer)
  50. int bits, *value, *pointer;
  51. short array[];
  52. {
  53.   int i;
  54.   for (i = 0, *value = 0; i < bits; i++, (*pointer)++)
  55.     *value |= array[*pointer+1] << i;
  56. }