gen_tools.cpp
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:1k
源码类别:

3G开发

开发平台:

Visual C++

  1. // gen_tools.cpp
  2. //
  3. #include "gen_tools.h"
  4. int TrailingZeroCount(int value)
  5. {
  6.   int result=0;
  7.   int work = value;
  8.   int lsb = work & 0x1;
  9.   while( lsb == 0)
  10.     {
  11.     result++;
  12.     work >>=1;
  13.     lsb = work & 0x1;
  14.     }
  15.   return( result);
  16. }
  17. int ActiveBitCount(int value)
  18. {
  19.   int num_trail_zeros;
  20.   num_trail_zeros = TrailingZeroCount( value);
  21.   int work = value >> num_trail_zeros;
  22.   int result = 0;
  23.   while( work != 0 )
  24.     {
  25.     result++;
  26.     work >>= 1;
  27.     }
  28.   return(result);
  29. }
  30. int ReverseBits( int value, int num_bits)
  31. {
  32.   int work = value;
  33.   int result =0;
  34.   for(int i=0; i<num_bits; i++)
  35.     {
  36.     result <<=1;
  37.     result |= (work & 0x1);
  38.     work >>=1;
  39.     }
  40.   return(result);
  41. }