Excel 16.0 build 20430
Windows, 64-bit, CPU not recorded
1,198 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.
Engineering functions
Matches all 1,202 recorded answers
Recorded: 1,198 in the answer bank and 4 workbook cells. How we measure this · See the Rust code
| Language | Name in Excel |
|---|---|
| Arabic | OCT2HEX |
| Bulgarian | OCT2HEX |
| Czech | OCT2HEX |
| Danish | OKT.TIL.HEX |
| German | OCT2HEX |
| Greek | OCT2HEX |
| English (Australia) | OCT2HEX |
| English (United Kingdom) | OCT2HEX |
| English (United States) | OCT2HEX |
| Spanish | OCT.A.HEX |
| Estonian | OCT2HEX |
| Finnish | OKTHEKSA |
| French | OCTHEX |
| Hebrew | OCT2HEX |
| Croatian | OCT2HEX |
| Hungarian | OKT.HEX |
| Indonesian | OCT2HEX |
| Italian | OCT2HEX |
| Japanese | OCT2HEX |
| Korean | OCT2HEX |
| Lithuanian | OCT2HEX |
| Latvian | OCT2HEX |
| Norwegian | OCT2HEX |
| Dutch | OCT2HEX |
| Polish | ÓSM.NA.SZESN |
| Portuguese (Brazil) | OCT2HEX |
| Portuguese (Portugal) | OCTAHEX |
| Romanian | OCT2HEX |
| Russian | ВОСЬМ.В.ШЕСТН |
| Slovak | OCT2HEX |
| Slovenian | OCT2HEX |
| Serbian (Latin) | OCT2HEX |
| Swedish | OKT.TILL.HEX |
| Thai | OCT2HEX |
| Turkish | OCT2HEX işlevi |
| Ukrainian | OCT2HEX |
| Vietnamese | OCT2HEX |
| Chinese (Simplified) | OCT2HEX |
| Chinese (Hong Kong) | OCT2HEX |
| Chinese (Traditional) | OCT2HEX |
Names from Microsoft's support site.
OCT2HEX(number, [places])
OCT2HEX(number, [places]) converts octal to hexadecimal. The result is text, with optional leading zeros controlled by places.
=OCT2HEX("55",4) returns "002D". All of these represent the same integer: decimal 45, binary 101101, octal 55, and hexadecimal 2D.
For a negative value, =OCT2HEX("7777777723",4) returns "FFFFFFFFD3". Decode 1073741779-2^30=-45, then encode 2^40-45 in ten hexadecimal digits. The destination sign width is 40 bits.
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 30-bit two’s complement. 7777777777 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.
Separate input parsing, signed interpretation and output formatting. Uppercase the source, validate its digit set and length, and accumulate raw=raw*8+digit with checked integer arithmetic. Only a full ten-digit source with its top bit set is negative: subtract 2^30 to obtain signed integer v. Check v against the 40-bit signed target range. If negative, encode 2^40+v in base 16 using ten digits. Otherwise use repeated division by 16, 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.
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.
OCT2HEX · 1 lines · calc-func/src/catalogue/engineering.rs on GitHub12 oct2hex "OCT2HEX" (1, 2) [V "number", V "places"] |s, a, sv| { between(s, a, radix::oct2hex_kernel) }
oct2hex_kernel · 3 lines · calc-func/src/ported/engineering_radix_family.rs on GitHubpub fn oct2hex_kernel(number: &str, places: Option<f64>) -> Result<ExcelText, WorksheetErrorCode> {
source_to_target_kernel(number, places, OCT_SPEC, HEX_SPEC)
}
radix_kind catalogue/engineeringplaces catalogue/engineeringbetween catalogue/engineeringint_to_base ported/base_fnbase_kernel ported/base_fnupper_ascii_digit_value ported/engineering_radix_familynormalize_radix_text ported/engineering_radix_familyparse_radix_text ported/engineering_radix_familynormalize_places ported/engineering_radix_familymin_signed_value ported/engineering_radix_familymax_signed_value ported/engineering_radix_familyencode_signed_value ported/engineering_radix_familysource_to_target_kernel ported/engineering_radix_familyNo implementation has been published with a Handbook test suite for this function.
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 build | Platform and CPU | Captured inputs |
|---|---|---|
| 20430 | Windows, 64-bit, CPU not recorded | 1,198 |
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.
Windows, 64-bit, CPU not recorded
1,198 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.
HEX2OCT 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.
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents