我正在尝试,DEC2HEX(1000000000050000000)但它出现了#NUM!因为此功能的数量太大.
是否还有其他功能可以将此数字转换为十六进制?
小智 7
如果要将十进制数转换为64位十六进制数字,假设十进制数在单元格A1中,则可以使用以下内容:
=CONCATENATE(DEC2HEX(A1/2^32),DEC2HEX(MOD(A1,2^32),8))
Run Code Online (Sandbox Code Playgroud)
这将达到十进制值18,446,744,073,709,500,000或十六进制值0xfffffffffffffff800.
奖金:
要将十六进制字符串转换为十进制,假设64位十六进制字符串位于单元格A1中并包含16个字符,则可以使用以下内容:
=HEX2DEC(LEFT(A1,8))*2^32+HEX2DEC(RIGHT(A1,8))
Run Code Online (Sandbox Code Playgroud)
您可以调整LEFT中的字符数(text,[num_chars])以更好地满足您的需求.
如果您的十六进制字符串有一个0x,那么您可以使用以下内容:
=HEX2DEC(MID(A1,3,8))*2^32+HEX2DEC(RIGHT(A1,8))
Run Code Online (Sandbox Code Playgroud)
保罗
小智 6
我找到了一个简单的解决方案,可以在没有字符限制的情况下将 HEX 转换为 DEC,反之亦然。
HEX to DEC : 使用 DECIMAL(输入数字或单元格坐标,输入基数)
DEC to HEX : use BASE(输入数字或单元坐标,输出基数)
案例1:我想将数值“1500”转换为十六进制,公式为BASE(1500, 16)
案例2:我想将数值“1500”转换为二进制,公式为BASE(1500, 2)
有一个免费的插件可以处理这个问题: Xnumbers
似乎工作正常:
=cvDecBase("1000000000050000000",16) --> DE0B6B3AA5EF080
Run Code Online (Sandbox Code Playgroud)