21 std::string resultString(
"" );
22 for (
int i = nbits; i >= 0; i-- ) {
23 if ( uintValue & ( 1u << i ) ) {
28 if ( ( i % 4 ) == 0 ) resultString +=
" ";
35 std::string resultString(
"" );
36 for (
int i = nbits; i >= 0; i-- ) {
37 if ( intValue & ( 1u << i ) ) {
42 if ( ( i % 4 ) == 0 ) resultString +=
" ";
48 const unsigned int mask ) {
51 unsigned int maskcopy;
55 result = *uintValue & mask;
57 while ( ( maskcopy & 0x00000001 ) == 0 ) {
58 maskcopy = maskcopy >> 1;
69 int ostart = std::min( startbit, endbit );
70 int oend = std::max( startbit, endbit );
71 unsigned int start = std::max( ostart, 0 );
72 unsigned int end = std::min( oend, 32 );
74 unsigned int result = value;
76 result >>= std::abs( ostart );
87 unsigned int start = std::min( std::max( startbit, 0 ), std::max( endbit, 0 ) );
88 unsigned int end = std::max( std::min( startbit, 32 ), std::min( endbit, 32 ) );
91 for(
unsigned int i = 0; i <= ( end - start ); ++i ) {
102 int ostart = std::min( startbit, endbit );
103 int oend = std::max( startbit, endbit );
104 unsigned int start = std::max( ostart, 0 );
105 unsigned int end = std::min( oend, 32 );
107 std::ostringstream s;
109 for(
unsigned int i = start; i <= end; ++i ) {
110 if (
isSet(&value, i) ) {
static unsigned int getValue(const unsigned int *uintValue, const unsigned int mask)
get the value in the input word represented by a bit pattern given as a bitmask
static unsigned int createMask(int startbit, int endbit)
create a 32 bit long mask with 1s from given start to end position
static unsigned int alignBits(int value, int startbit, int endbit)
align given bits using start and end position into 32 bits
static bool isSet(const unsigned int *uintValue, int bit)
Check if a the given bit in the given unsigned int or int value is set.
static void printBinN(unsigned int uintValue, int nbits)
static const std::string printBits(const int value, const int startbit, const int endbit)
print selected bit range into string