gpt4 book ai didi

c - 如何将负十六进制转换为十进制

转载 作者:太空狗 更新时间:2023-10-29 17:24:18 27 4
gpt4 key购买 nike

您好,我想知道如何将十六进制负值(以补充编码)轻松转换为十进制,而无需将十六进制转换为二进制,然后将每个位乘以 2 的幂并将所有值相加得到结果,花费了太多时间:数字示例(32 位):0xFFFFFE58

那我该怎么做呢?

最佳答案

无需使用计算机,您可以这样计算:

0xFFFF FE58 = - 0x1A8 = -(1 * 16² + 10 * 16 + 8) = -(256 + 160 + 8) = -424

0xFFFF FE58 是 2 的补码形式的负数。要获得绝对值,您必须反转所有位并在二进制中加 1。您还可以从第一个超出范围的数字 (0x1 0000 0000) 中减去此数字

 0x100000000
-0x0FFFFFE58
=
0x0000001A8

现在我们知道您的电话号码是 -0x1A8。现在你必须把数字乘以它们的位值相加。 8 * 16^0 + A(即 10)* 16^1 + 1 * 16^2 = 424。所以你的数字的十进制值为 -424。

关于c - 如何将负十六进制转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25663808/

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