Documentation/Calc Functions/HEX2BIN

From The Document Foundation Wiki
Jump to navigation Jump to search

Function name:

HEX2BIN

Category:

Add-in

Summary:

Converts a hexadecimal number (base-16) to its binary (base-2) equivalent. The input hexadecimal number must correspond to a decimal number d in the range -512 ≤ d < 512.

Syntax:

HEX2BIN(Number[; Places])

Returns:

Returns a text string comprising up to 10 binary digits (0 or 1), which is the binary number in two’s complement form that corresponds to the specified hexadecimal number.

Arguments:

Number is a string or a number, or a reference to a cell containing one of those types, which gives the hexadecimal number that is to be converted to binary. The hexadecimal number must comprise no more than 10 characters and should correspond to a decimal number in the range -512 ≤ d < 512. If the hexadecimal number contains any letters (a…f or A…F; the case of these characters is not significant), it must either be in a referenced cell or passed as a string argument in quotation marks.

Places is an integer in the range 1 to 10, or a reference to a cell containing that value, which is the number of characters that should be returned for a positive Number. Places is ignored for negative values of Number, when HEX2BIN always returns 10 characters. The default for positive values of Number is for the returned string to occupy as many characters as necessary to accommodate the binary representation, but you can set the value of Places to add leading zeroes where necessary.

  • Number should use the standard two's complement representation, so that positive numbers are hexadecimal 0 to 1FF (0 to 511 decimal) and negative numbers are hexadecimal FFFFFFFFFF to FFFFFFFE00 (-1 to -512 decimal). Negative numbers must be ten characters long with the leftmost bit set to 1; positive numbers can comprise less than 10 characters.
  • If Number does not specify a valid hexadecimal number, then HEX2BIN reports an invalid argument error (Err:502). This may arise, for example, if Number contains more than 10 characters or if it contains any character other than 0…9, a…f, or A…F.
  • If a hexadecimal value containing one or more letters is passed directly to the function and is not surrounded by quotation marks, HEX2BIN reports a #NAME? error.
  • If Number is a string comprising no characters, or a reference to an empty cell, HEX2BIN returns 0 (possibly with leading zeroes, depending on the value of Places).
  • Although the content of Number may appear to be decimal if it contains no letters, HEX2BIN will interpret it correctly.
  • If Places is non-numeric, then HEX2BIN reports an invalid argument error (Err:502).
  • If Places is a non-integer value, then HEX2BIN truncates it to an integer.
  • If, after any truncation, Places is less than 1 or greater than 10, HEX2BIN reports an invalid argument error (Err:502).
  • If Number is positive and Places is less than the minimum number of characters required to accommodate the binary representation of Number, then HEX2BIN reports an invalid argument error (Err:502).

Additional details:

The following Wikipedia pages provide useful background information that is relevant to this function:

Examples:

Formula Description Returns
=HEX2BIN("3F") Here the function converts the hexadecimal value of 3F (passed as a string) to its binary equivalent of 111111. 111111
=HEX2BIN(3F) Here the function returns an invalid name error because Calc does not recognize 3F as a number. #NAME?
=HEX2BIN(15) Here the function converts the hexadecimal value of 15 (passed as a number) to its binary equivalent of 10101. 10101
=HEX2BIN("3f", 8) Here the function again converts the hexadecimal value of 3F to its binary equivalent of 111111 but also adds two leading zeroes. 00111111
=HEX2BIN(D1; D2) where cells D1 and D2 contain 3F (text) and 10 (number) respectively. Here the function again converts the hexadecimal value of 3F (passed via a cell reference) to its binary equivalent of 111111 but also adds four leading zeroes. 0000111111
=HEX2BIN("FFFFFFFE00") Here the function converts the minimum allowed 10-character hexadecimal value of FFFFFFFE00 (-512 decimal) to its binary equivalent of 1000000000. 1000000000
=HEX2BIN("FFFFFFFFFF") Here the function converts the 10-character hexadecimal value of FFFFFFFFFF (-1 decimal) to its binary equivalent of 1111111111. 1111111111
=HEX2BIN("1FF") Here the function converts the maximum allowed hexadecimal value of 1FF (511 decimal) to its binary equivalent of 111111111. 111111111

Related LibreOffice functions:

HEX2DEC

HEX2OCT

ODF standard:

Section 6.19.11, part 2

Equivalent Excel functions:

HEX2BIN