gpt4 book ai didi

excel - 将任何长度的有符号十六进制数转换为有符号十进制数 (Excel)

转载 作者:行者123 更新时间:2023-12-03 21:17:10 48 4
gpt4 key购买 nike

问题

当面对未知长度的有符号十六进制数时,如何使用 Excel 公式轻松地将这些十六进制数转换为十进制数?

示例

Hex
---
00
FF
FE
FD
0A
0B

最佳答案

使用这个深度嵌套的 formula :

=HEX2DEC(N)-IF(ISERR(FIND(LEFT(IF(ISEVEN(LEN(N)),N,CONCAT(0,N))),"01234567")),16^LEN(IF(ISEVEN(LEN(N)),N,CONCAT(0,N))),0)

其中 N 是包含十六进制数据的单元格。

展开后,此公式变得更具可读性:
=HEX2DEC(N) -
/* check if sign bit is present in leftmost nibble, padding to an even number of digits if necessary */
IF( ISERR( FIND( LEFT( IF( ISEVEN(LEN(N))
, N
, CONCAT(0,N)
)
)
, "01234567"
)
)
/* offset if sign bit is present */
, 16^LEN( IF( ISEVEN(LEN(N))
, N
, CONCAT(0,N)
)
)
/* do not offset if sign bit is absent */
, 0
)

并且可以读作“首先,将十六进制值转换为无符号十进制值。如果数据的最左半字节包含符号位,则偏移无符号十进制值;否则不偏移。”

转换示例
Hex  | Dec
-----|----
00 | 0
FF | -1
FE | -2
FD | -3
0A | 10
0B | 11

关于excel - 将任何长度的有符号十六进制数转换为有符号十进制数 (Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52319205/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com