TBTK
Need a break? Support the development by playing Polarity Puzzles
TBTK::BitRegister Class Reference

Register of bits. More...

#include <BitRegister.h>

Public Member Functions

 BitRegister (unsigned int numBits=8 *sizeof(unsigned int))
 
 BitRegister (const BitRegister &bitRegister)
 
const BitRegister operator| (const BitRegister &rhs) const
 
const BitRegister operator & (const BitRegister &rhs) const
 
const BitRegister operator^ (const BitRegister &rhs) const
 
const BitRegister operator+ (const BitRegister &rhs) const
 
const BitRegister operator- (const BitRegister &rhs) const
 
bool operator< (const BitRegister &rhs) const
 
bool operator> (const BitRegister &rhs) const
 
bool operator== (const BitRegister &rhs) const
 
void operator+= (const BitRegister &rhs)
 
void operator-= (const BitRegister &rhs)
 
const BitRegisteroperator++ ()
 
const BitRegister operator++ (int)
 
const BitRegisteroperator-- ()
 
const BitRegister operator-- (int)
 
void operator= (const BitRegister &rhs)
 
void operator= (unsigned int rhs)
 
BitRegister operator<< (unsigned int rhs) const
 
BitRegister operator>> (unsigned int rhs) const
 
void setBit (unsigned int position, bool values)
 
bool getBit (unsigned int position) const
 
void setValues (unsigned int values)
 
unsigned int getValues () const
 
bool toBool () const
 
unsigned int toUnsignedInt () const
 
void clear ()
 
void print () const
 
unsigned int getNumBits () const
 
unsigned int getNumOneBits () const
 
bool getMostSignificantBit () const
 
void setMostSignificantBit ()
 
void clearMostSignificantBit ()
 
BitRegister cloneStructure () const
 
std::string toString () const
 

Friends

std::ostream & operator<< (std::ostream &stream, const BitRegister &bitRegister)
 

Detailed Description

Register of bits.

The BitRegister is provides methods or performing bitwise operations on an underlying unsigned int.

Example

#include "TBTK/Streams.h"
#include "TBTK/TBTK.h"
using namespace TBTK;
int main(){
BitRegister bitRegister[2];
Streams::out << "Assignment\n";
bitRegister[0] = 0xFF00FF00;
Streams::out << bitRegister[0] << "\n";
Streams::out << "\nSet individual bits\n";
bitRegister[0].setBit(2, 1);
bitRegister[0].setBit(30, 0);
Streams::out << bitRegister[0] << "\n";
bitRegister[0] = 0xFFFF0000;
bitRegister[1] = 0x00FF00FF;
Streams::out << "\nBitwise operations\n";
Streams::out << (bitRegister[0] | bitRegister[1]) << "\n";
Streams::out << (bitRegister[0] & bitRegister[1]) << "\n";
Streams::out << (bitRegister[0] ^ bitRegister[1]) << "\n";
Streams::out << "\nCount number of ones\n";
Streams::out << bitRegister[0].getNumOneBits() << "\n";
Streams::out << "\nClear a register\n";
bitRegister[0].clear();
Streams::out << bitRegister[0] << "\n";
Streams::out << "\nBit shift\n";
Streams::out << bitRegister[1] << "\n";
Streams::out << (bitRegister[1] << 1) << "\n";
Streams::out << (bitRegister[1] << 2) << "\n";
Streams::out << (bitRegister[1] >> 1) << "\n";
Streams::out << (bitRegister[1] >> 2) << "\n";
}

Output

Assignment
11111111000000001111111100000000
Set individual bits
10111111000000001111111100000100
Bitwise operations
11111111111111110000000011111111
00000000111111110000000000000000
11111111000000000000000011111111
Count number of ones
16
Clear a register
00000000000000000000000000000000
Bit shift
00000000111111110000000011111111
00000001111111100000000111111110
00000011111111000000001111111100
00000000011111111000000001111111
00000000001111111100000000111111

Constructor & Destructor Documentation

◆ BitRegister() [1/2]

TBTK::BitRegister::BitRegister ( unsigned int  numBits = 8 *sizeof(unsigned int))

Constructor.

◆ BitRegister() [2/2]

TBTK::BitRegister::BitRegister ( const BitRegister bitRegister)

Copy constructor.

Member Function Documentation

◆ clear()

void TBTK::BitRegister::clear ( )
inline

Clear register.

◆ clearMostSignificantBit()

void TBTK::BitRegister::clearMostSignificantBit ( )
inline

Clear the most significant bit.

◆ cloneStructure()

BitRegister TBTK::BitRegister::cloneStructure ( ) const
inline

Create a new BitRegister with the same structure. (Provided to ensure the interface is similar with the interface for ExtensiveBitRegister.)

◆ getBit()

bool TBTK::BitRegister::getBit ( unsigned int  position) const
inline

Get bit value.

◆ getMostSignificantBit()

bool TBTK::BitRegister::getMostSignificantBit ( ) const
inline

Returns the most significant bit.

◆ getNumBits()

unsigned int TBTK::BitRegister::getNumBits ( ) const
inline

Returns the number of bits in the register.

◆ getNumOneBits()

unsigned int TBTK::BitRegister::getNumOneBits ( ) const
inline

Returns the number of bits that are one.

◆ getValues()

unsigned int TBTK::BitRegister::getValues ( ) const
inline

Get values as unsigned int.

◆ operator &()

const BitRegister TBTK::BitRegister::operator& ( const BitRegister rhs) const

Bitwise and operator.

◆ operator+()

const BitRegister TBTK::BitRegister::operator+ ( const BitRegister rhs) const
inline

Addition operator.

◆ operator++() [1/2]

const BitRegister & TBTK::BitRegister::operator++ ( )
inline

Increment operator.

◆ operator++() [2/2]

const BitRegister TBTK::BitRegister::operator++ ( int  )
inline

Increment operator.

◆ operator+=()

void TBTK::BitRegister::operator+= ( const BitRegister rhs)
inline

+= operator.

◆ operator-()

const BitRegister TBTK::BitRegister::operator- ( const BitRegister rhs) const
inline

Subtraction operator.

◆ operator--() [1/2]

const BitRegister & TBTK::BitRegister::operator-- ( )
inline

Decrement operator.

◆ operator--() [2/2]

const BitRegister TBTK::BitRegister::operator-- ( int  )
inline

Decrement operator.

◆ operator-=()

void TBTK::BitRegister::operator-= ( const BitRegister rhs)
inline

-= operator.

◆ operator<()

bool TBTK::BitRegister::operator< ( const BitRegister rhs) const
inline

Less than operator.

◆ operator<<()

BitRegister TBTK::BitRegister::operator<< ( unsigned int  rhs) const
inline

Left bitshift operator.

◆ operator=() [1/2]

void TBTK::BitRegister::operator= ( const BitRegister rhs)
inline

Assignment operator.

◆ operator=() [2/2]

void TBTK::BitRegister::operator= ( unsigned int  rhs)
inline

Assignment operator.

◆ operator==()

bool TBTK::BitRegister::operator== ( const BitRegister rhs) const
inline

Comparison operator.

◆ operator>()

bool TBTK::BitRegister::operator> ( const BitRegister rhs) const
inline

Greater than operator.

◆ operator>>()

BitRegister TBTK::BitRegister::operator>> ( unsigned int  rhs) const
inline

Right bitshift operator.

◆ operator^()

const BitRegister TBTK::BitRegister::operator^ ( const BitRegister rhs) const
inline

Bitwise xor operator.

◆ operator|()

const BitRegister TBTK::BitRegister::operator| ( const BitRegister rhs) const
inline

Bitwise or operator.

◆ print()

void TBTK::BitRegister::print ( ) const
inline

Print bit register.

◆ setBit()

void TBTK::BitRegister::setBit ( unsigned int  position,
bool  values 
)
inline

Set value of bit at a specific position.

◆ setMostSignificantBit()

void TBTK::BitRegister::setMostSignificantBit ( )
inline

Set the most significant bit.

◆ setValues()

void TBTK::BitRegister::setValues ( unsigned int  values)
inline

Set values as unsigned int.

◆ toBool()

bool TBTK::BitRegister::toBool ( ) const
inline

Returns a bool that is false if all bits are zero, and true otherwise.

◆ toString()

std::string TBTK::BitRegister::toString ( ) const
inline

Get string representation of the BitRegister.

Returns
A string representation of the BitRegister.

◆ toUnsignedInt()

unsigned int TBTK::BitRegister::toUnsignedInt ( ) const
inline

Returns an unsigned int containing the least significant bits.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  stream,
const BitRegister bitRegister 
)
friend

Writes the BitRegsiter toString()-representation to a stream.

Parameters
streamThe stream to write to.
bitRegisterThe BitRegister to write.
Returns
Reference to the output stream just written to.

The documentation for this class was generated from the following file: