code: public static function BINTOOCT($x, $places = null)
      {
          $x = Functions::flattenSingleValue($x);
          $places = Functions::flattenSingleValue($places);
  
          if (is_bool($x)) {
              if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
                  $x = (int) $x;
              } else {
                  return Functions::VALUE();
              }
          }
          if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
              $x = floor($x);
          }
          $x = (string) $x;
          if (strlen($x) > preg_match_all('/[01]/', $x, $out)) {
              return Functions::NAN();
          }
          if (strlen($x) > 10) {
              return Functions::NAN();
          } elseif (strlen($x) == 10) {
              //    Two's Complement
              return str_repeat('7', 7) . substr(strtoupper(decoct(bindec(substr($x, -9)))), -3);
          }
          $octVal = (string) decoct(bindec($x));
  
          return self::nbrConversionFormat($octVal, $places);
      }
docs: BINTOOCT.
  
  Return a binary value as octal.
  
  Excel Function:
  BIN2OCT(x[,places])
  
  @category Engineering Functions
  
  @param string $x The binary number (as a string) that you want to convert. The number
  cannot contain more than 10 characters (10 bits). The most significant
  bit of number is the sign bit. The remaining 9 bits are magnitude bits.
  Negative numbers are represented using two's-complement notation.
  If number is not a valid binary number, or if number contains more than
  10 characters (10 bits), BIN2OCT returns the #NUM! error value.
  @param int $places The number of characters to use. If places is omitted, BIN2OCT uses the
  minimum number of characters necessary. Places is useful for padding the
  return value with leading 0s (zeros).
  If places is not an integer, it is truncated.
  If places is nonnumeric, BIN2OCT returns the #VALUE! error value.
  If places is negative, BIN2OCT returns the #NUM! error value.
  
  @return string