home *** CD-ROM | disk | FTP | other *** search
/ Audio 4.94 - Over 11,000 Files / audio-11000.iso / amiga / midi / obrst103.lha / OberSuite-1.03 / SourceCode / bits.c < prev    next >
C/C++ Source or Header  |  1993-01-23  |  945b  |  37 lines

  1. /**************************************************************************
  2. * bits.c:    Functions for manipulating bit vectors.
  3. *        A part of OberSuite for the Commodore Amiga.
  4. *
  5. * Author:    Daniel Barrett, barrett@cs.umass.edu.
  6. * Version:    1.0.
  7. * Copyright:    None!  This program is in the Public Domain.
  8. *        Please share it with others.
  9. ***************************************************************************/
  10.  
  11. #include "bits.h"
  12.  
  13. /* Given a bit vector, turn on the nth bit (counting from 0). */
  14.  
  15. void FlipOn(BITS bitfield[], int n)
  16. {
  17.     bitfield[n/BITFIELD_WIDTH]   |=   (1 << (n % BITFIELD_WIDTH));
  18. }
  19.  
  20.  
  21. /* Given a bit vector, set all of its bits to 0. */
  22.  
  23. void ClearBitfield(BITS bitfield[])
  24. {
  25.     int i;
  26.     for (i=0; i<BITFIELD_LENGTH; i++)
  27.         bitfield[i] = (BITS)0;
  28. }
  29.  
  30.  
  31. /* Given a bit vector, determine whether or not a given bit is on. */
  32.  
  33. BOOL BitOn(BITS bitfield[], int bit)
  34. {
  35.     return(bitfield[bit/BITFIELD_WIDTH] & (1 << (bit % BITFIELD_WIDTH)));
  36. }
  37.