Vendor/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Engineering.php
public static function HEXTODEC($x)
    {
        $x = Functions::flattenSingleValue($x);

        if (is_bool($x)) {
            return Functions::VALUE();
        }
        $x = (string) $x;
        if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/', strtoupper($x), $out)) {
            return Functions::NAN();
        }

        if (strlen($x) > 10) {
            return Functions::NAN();
        }

        $binX = '';
        foreach (str_split($x) as $char) {
            $binX .= str_pad(base_convert($char, 16, 2), 4, '0', STR_PAD_LEFT);
        }
        if (strlen($binX) == 40 && $binX[0] == '1') {
            for ($i = 0; $i < 40; ++$i) {
                $binX[$i] = ($binX[$i] == '1' ? '0' : '1');
            }

            return (bindec($binX) + 1) * -1;
        }

        return bindec($binX);
    }
public static function HEXTODEC($x)
    {
        $x = Functions::flattenSingleValue($x);

        if (is_bool($x)) {
            return Functions::VALUE();
        }
        $x = (string) $x;
        if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/', strtoupper($x), $out)) {
            return Functions::NAN();
        }

        if (strlen($x) > 10) {
            return Functions::NAN();
        }

        $binX = '';
        foreach (str_split($x) as $char) {
            $binX .= str_pad(base_convert($char, 16, 2), 4, '0', STR_PAD_LEFT);
        }
        if (strlen($binX) == 40 && $binX[0] == '1') {
            for ($i = 0; $i < 40; ++$i) {
                $binX[$i] = ($binX[$i] == '1' ? '0' : '1');
            }

            return (bindec($binX) + 1) * -1;
        }

        return bindec($binX);
    }
public static function HEXTODEC ( $ x ) { $ x = Functions :: flattenSingleValue ( $ x ) ; if ( is_bool ( $ x ) ) { return Functions :: VALUE ( ) ; } $ x = ( string ) $ x ; if ( strlen ( $ x ) > preg_match_all ( '/[0123456789ABCDEF]/' , strtoupper ( $ x ) , $ out ) ) { return Functions :: NAN ( ) ; } if ( strlen ( $ x ) > 10 ) { return Functions :: NAN ( ) ; } $ binX = '' ; foreach ( str_split ( $ x ) as $ char ) { $ binX .= str_pad ( base_convert ( $ char , 16 , 2 ) , 4 , '0' , STR_PAD_LEFT ) ; } if ( strlen ( $ binX ) == 40 && $ binX [ 0 ] == '1' ) { for ( $ i = 0 ; $ i < 40 ; ++ $ i ) { $ binX [ $ i ] = ( $ binX [ $ i ] == '1' ? '0' : '1' ) ; } return ( bindec ( $ binX ) + 1 ) * - 1 ; } return bindec ( $ binX ) ; }
HEXTODEC.

Return a hex value as decimal.

Excel Function:
HEX2DEC(x)

@category Engineering Functions

@param string $x The hexadecimal number you want to convert. This number cannot
contain more than 10 characters (40 bits). The most significant
bit of number is the sign bit. The remaining 39 bits are magnitude
bits. Negative numbers are represented using two's-complement
notation.
If number is not a valid hexadecimal number, HEX2DEC returns the
#NUM! error value.

@return string
HEXTODEC .