What's this?

 int hatena(int b)
 {
  int n;
  n = (b >> 1) & 03333333333;
  n = b - n - ((n >> 1) & 03333333333);
  n = ((n + (n >> 3)) & 0707070707) % 077;
  return n;
 }