如何在Excel中将64位数转换为十六进制?

时间:2014-01-20 23:33:05

标签: excel

我正在尝试DEC2HEX(1000000000050000000),但它是#NUM!因为此功能的数量太大。

我可以使用另一个函数将此数字转换为十六进制吗?

5 个答案:

答案 0 :(得分:7)

如果要将十进制数转换为64位十六进制数字,假设十进制数在单元格A1中,则可以使用以下内容:

=CONCATENATE(DEC2HEX(A1/2^32),DEC2HEX(MOD(A1,2^32),8))

这将达到十进制值18,446,744,073,709,500,000或十六进制值0xfffffffffffffff800。

<强>加成:

要将十六进制字符串转换为十进制,假设64位十六进制字符串位于单元格A1中并包含16个字符,则可以使用以下内容:

=HEX2DEC(LEFT(A1,8))*2^32+HEX2DEC(RIGHT(A1,8))

您可以调整LEFT中的字符数(text,[num_chars])以更好地满足您的需求。

如果您的十六进制字符串有一个0x,那么您可以使用以下内容:

=HEX2DEC(MID(A1,3,8))*2^32+HEX2DEC(RIGHT(A1,8))

答案 1 :(得分:4)

DEC2HEX函数的限制为549,755,813,887,尝试此公式适用于最高为281,474,976,710,655的数字。

=DEC2HEX(A7/(16^9),3)&DEC2HEX(MOD(A7,16^9),9)

答案 2 :(得分:2)

有一个免费的加载项可以处理:Xnumbers

似乎工作正常:

=cvDecBase("1000000000050000000",16) -->  DE0B6B3AA5EF080

答案 3 :(得分:2)

我发现了一个简单的解决方案,可以将十六进制转换为DEC,反之亦然,而无需限制字符。

十六进制至DEC :使用DECIMAL(输入数字或单元格坐标,输入基数)

  • 情况1:我要将十六进制值“ 3C”转换为十进制,公式为DECIMAL(3C,16)。
  • 情况2:我想将二进制值“ 1001”转换为十进制,公式为DECIMAL(1001,2)。

DEC转换为十六进制:使用BASE(输入数字或单元格坐标,输出基数)

  • 情况1:我想将数字值“ 1500”转换为十六进制,公式为BASE(1500,16)

  • 情况2:我想将数值“ 1500”转换为二进制,公式为BASE(1500,2)

答案 4 :(得分:0)

长公式,但可用于64个十六进制字符:

=HEX2DEC(MID(A24,1,8))*2^512 *(4) +HEX2DEC(MID(A24,9,8))*2^512 *(2) +HEX2DEC(MID(A24,17,8))*2^512+HEX2DEC(MID(A24,25,8))*2^256+HEX2DEC(MID(A24,33,8))*2^128+HEX2DEC(MID(A24,41,8))*2^64+HEX2DEC(MID(A24,49,8))*2^32+HEX2DEC(MID(A24,57,8))

请注意:(*4) = *4(除去括号)和:(*2) = *2(除去括号)

还请注意:必须显示所有64个字符,例如以下示例:

0000000000000000000000000000000000000000000000000000000000000fd1