code: public static function unsignedShiftRight( $a, $b ) {
  		if ( $b == 0 ) {
  			return $a;
  		}
  		if ( $a & 0x80000000 ) {
  			return ( ( $a & 0x7fffffff ) >> $b ) | ( 0x40000000 >> ( $b - 1 ) );
  		} else {
  			return $a >> $b;
  		}
  	}
docs: Shift a signed integer right as if it were unsigned
  @param int $a
  @param int $b
  @return int