Tuesday, December 11, 2012

Creating bit function

char* bits(unsigned int val) 
returns a character string holding the bit pattern of val (i.e cout<<bits(0xF7)<<endl, will print 11110111)

char* bits(unsigned int val) {
  unsigned int m = 1 << (sizeof(val)*8 -1); 
  char* str = new char[sizeof(val)*8];
  int i = 0;
  while(m){  
    sprintf(&str[i], "%d", !!(m & val));  
    m = m >> 1;
    i++;
  }
  return str;
}

No comments:

Post a Comment