Simbody
Functions

exactlyOneBitIsSet()

Bit-twiddling Functions

exactlyOneBitIsSet(i) provides a very fast way to determine whether an integral type has exactly one bit set. More...

Functions

bool SimTK::exactlyOneBitIsSet (unsigned char v)
bool SimTK::exactlyOneBitIsSet (unsigned short v)
bool SimTK::exactlyOneBitIsSet (unsigned int v)
bool SimTK::exactlyOneBitIsSet (unsigned long v)
bool SimTK::exactlyOneBitIsSet (unsigned long long v)
bool SimTK::exactlyOneBitIsSet (signed char v)
bool SimTK::exactlyOneBitIsSet (char v)
bool SimTK::exactlyOneBitIsSet (short v)
bool SimTK::exactlyOneBitIsSet (int v)
bool SimTK::exactlyOneBitIsSet (long v)
bool SimTK::exactlyOneBitIsSet (long long v)

Detailed Description

exactlyOneBitIsSet(i) provides a very fast way to determine whether an integral type has exactly one bit set.

For unsigned and positive signed values, this is equivalent to the value being a power of two. Note that negative powers of two are not represented with a single bit set -- negate it first if you want to use this routine to determine if a signed value is a negative power of two.

See also:
atMostOneBitIsSet()

Function Documentation

bool SimTK::exactlyOneBitIsSet ( unsigned char  v) [inline]
bool SimTK::exactlyOneBitIsSet ( unsigned short  v) [inline]
bool SimTK::exactlyOneBitIsSet ( unsigned int  v) [inline]
bool SimTK::exactlyOneBitIsSet ( unsigned long  v) [inline]
bool SimTK::exactlyOneBitIsSet ( unsigned long long  v) [inline]
bool SimTK::exactlyOneBitIsSet ( signed char  v) [inline]
bool SimTK::exactlyOneBitIsSet ( char  v) [inline]
bool SimTK::exactlyOneBitIsSet ( short  v) [inline]
bool SimTK::exactlyOneBitIsSet ( int  v) [inline]
bool SimTK::exactlyOneBitIsSet ( long  v) [inline]
bool SimTK::exactlyOneBitIsSet ( long long  v) [inline]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines