Engineering functions

HEX2OCT

Matches all 1,222 recorded answers

Recorded: 1,218 in the answer bank and 4 workbook cells. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicHEX2OCT
BulgarianHEX2OCT
CzechHEX2OCT
DanishHEX.TIL.OKT
GermanHEX2OCT
GreekHEX2OCT
English (Australia)HEX2OCT
English (United Kingdom)HEX2OCT
English (United States)HEX2OCT
SpanishHEX.A.OCT
EstonianHEX2OCT
FinnishHEKSAOKT
FrenchHEXOCT
HebrewHEX2OCT
CroatianHEX2OCT
HungarianHEX.OKT
IndonesianHEX2OCT
ItalianHEX2OCT
JapaneseHEX2OCT
KoreanHEX2OCT
LithuanianHEX2OCT
LatvianHEX2OCT
NorwegianHEKSTILOKT
DutchHEX.N.OCT
PolishSZESN.NA.ÓSM
Portuguese (Brazil)HEX2OCT
Portuguese (Portugal)HEXAOCT
RomanianHEX2OCT
RussianШЕСТН.В.ВОСЬМ
SlovakHEX2OCT
SlovenianHEX2OCT
Serbian (Latin)HEX2OCT
SwedishHEX.TILL.OKT
ThaiHEX2OCT
TurkishHEX2OCT işlevi
UkrainianHEX2OCT
VietnameseHEX2OCT
Chinese (Simplified)HEX2OCT
Chinese (Hong Kong)HEX2OCT
Chinese (Traditional)HEX2OCT

Names from Microsoft's support site.

What it does

HEX2OCT(number, [places])

HEX2OCT(number, [places]) converts hexadecimal to octal. The result is text, with optional leading zeros controlled by places.

Try it

Input cells (optional)

Example: {"B2": 3, "B3": 4}. A1 holds the formula. Other cells need values before a formula can read them.

Enter a formula, then calculate.

Runs locally in your browser with OneCalc. Its answer may differ from Excel. Use English function names and commas between arguments.

=HEX2OCT("2D",4) returns "0055". All of these represent the same integer: decimal 45, binary 101101, octal 55, and hexadecimal 2D.

For a negative value, =HEX2OCT("FFFFFFFFD3",4) returns "7777777723". Decode 1099511627731-2^40=-45, then encode 2^30-45 in ten octal digits. Check the 30-bit destination range before formatting.

Quirks

These engineering conversions use signed fixed-width encodings, not arbitrary-length integers. The source accepts at most ten digits; a full ten-digit encoding uses 40-bit two’s complement. FFFFFFFFFF represents minus one. Invalid source digits or an oversized input give #NUM!. For a positive result a width too small gives #NUM!. A negative result uses ten digits; the current code still validates an explicitly supplied width before emitting it, despite documentation describing the width as ignored.

How to implement

Separate input parsing, signed interpretation and output formatting. Uppercase the source, validate its digit set and length, and accumulate raw=raw*16+digit with checked integer arithmetic. Only a full ten-digit source with its top bit set is negative: subtract 2^40 to obtain signed integer v. Check v against the 30-bit signed target range. If negative, encode 2^30+v in base 8 using ten digits. Otherwise use repeated division by 8, reverse the remainders and left-pad to the requested width. Truncate the width and validate it in the current supported range one through ten. Return text; a decimal number formatted to look similar is a different value kind.

Rust code

Show the CalcFunc source of this function

Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.

HEX2OCT · 1 lines · calc-func/src/catalogue/engineering.rs on GitHub
9 hex2oct "HEX2OCT" (1, 2) [V "number", V "places"] |s, a, sv| { between(s, a, radix::hex2oct_kernel) }
hex2oct_kernel · 3 lines · calc-func/src/ported/engineering_radix_family.rs on GitHub
pub fn hex2oct_kernel(number: &str, places: Option<f64>) -> Result<ExcelText, WorksheetErrorCode> {
    source_to_target_kernel(number, places, HEX_SPEC, OCT_SPEC)
}

Kernels shared with other functions

Argument and result plumbing

No implementation has been published with a Handbook test suite for this function.

Version differences

The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.

Excel 16.0 buildPlatform and CPUCaptured inputs
20430Windows, 64-bit, CPU not recorded1,218

The record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.

Recorded environments and comparison details.

Excel 16.0 build 20430

Windows, 64-bit, CPU not recorded

1,218 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build.

Alternatives

OCT2HEX converts in the reverse direction. BASE and DECIMAL provide general radix conversion with different sign rules. A full-width negative engineering encoding is not a minus-prefixed numeral; choose the pair whose sign convention fits your input.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents