#include "BitArray.h"
BitArray::BitArray( int Size )
{
ArraySize = ( Size + IntSize - 1 ) / IntSize;
TheArray = new int[ ArraySize ];
N = Size;
ClearAllBits( );
}
void
BitArray::ClearAllBits( )
{
for( int i = 0; i < ArraySize; i++ )
TheArray[ i ] = 0;
}
void
BitArray::SetBit( int i )
{
if( IsInRange( i ) )
TheArray[ i / IntSize ] |= ( 1 << ( i % IntSize ) );
}
void
BitArray::ClearBit( int i )
{
if( IsInRange( i ) )
TheArray[ i / IntSize ] &= ~( 1 << ( i % IntSize ) );
}
int
BitArray::GetBit( int i ) const
{
if( !IsInRange( i ) )
return 0;
return ( TheArray[ i / IntSize ] & ( 1 << ( i % IntSize ) ) ) != 0;
}