Please note javascript is required for full website functionality.

# A to Z of Excel Functions: The HEX2OCT Function

6 April 2020

Welcome back to our regular A to Z of Excel Functions blog. Today we look at the HEX2OCT function.

The HEX2OCT function

This function converts a hexadecimal number (base 16) to octal (base eight).

The HEX2OCT function employs the following syntax to operate:

HEX2OCT(number, [places])

The HEX2OCT function has the following arguments:

• number: this is required and represents the hexadecimal integer you wish to convert.  The number cannot contain more than 10 characters.  The most significant bit of number is the sign bit (40th bit from the right).  The remaining 39 bits are magnitude bits.  Negative numbers are represented using two's-complement notation
• places: this argument is optional.  This is the number of characters to use.  If places is omitted, HEX2OCT uses the minimum number of characters necessary.  The argument places is useful for padding the return value with leading 0s (zeros).

Two's complement is a mathematical operation on binary numbers, as well as a binary signed number representation based on this operation.  The two's complement of an N-bit number is defined as the complement with respect to 2N; in other words, it is the result of subtracting the number from 2N.  This is also equivalent to taking the ones' complement and then adding one, since the sum of a number and its ones' complement is all 1 bits.  The two's complement of a number behaves like the negative of the original number in most arithmetic, and positive and negative numbers can coexist in a natural way.

It should be further noted that:

• if number is negative, HEX2OCT ignores places and returns a 10-character octal number
• if number is negative, it cannot be less than FFE0000000
• if number is positive, it cannot be greater than 1FFFFFFF
• if number is not a valid hexadecimal number, HEX2OCT returns the #NUM! error value
• if HEX2OCT requires more than places characters, it returns the #NUM! error value
• if places is not an integer, it is truncated
• if places is nonnumeric, HEX2OCT returns the #VALUE! error value
• if places is negative, HEX2OCT returns the #NUM! error value.