gpt4 book ai didi

hex - 如何表示负的十六进制数?

转载 作者:行者123 更新时间:2023-12-04 00:33:29 32 4
gpt4 key购买 nike

如果我有一个负十进制数,例如 -5,并将其转换为十六进制格式。我可以简单地在十六进制数前面放一个负号吗?或者是否有另一种方法可以像二进制中的 2 的恭维那样做?

最佳答案

没有“一种方法”可以表示负数。也就是说,有许多标准方法可以表示负数。为了保持数学简单,我将假设所有数字都使用 4 位。

  • 使用符号位(二进制)0111是 7,但是 1111是 -7。 (也可以反过来做 0111 是 -7 1111 是 7。
  • 使用 1 的补码。 0111是 7,但是 1000是 -7(所有位翻转。这具有奇数属性 0000 是自然 0,但 1111 是(负零)-0。
  • 使用 2 的补码。否定是 1 的补码加 1,所以 0111是 7,但是 1000 + 00011001是 -7。这利用整数溢出来保持没有负零。 0000否定的是 1111 + 0001溢出到 0000 .它还有一些不错的属性,例如,如果可以写出两个数字(负数比正数多一个),则添加一些数字加上其负数会解析为零。 7 + (-7) 是 0111 + 1001溢出到 0 0000 .

  • 您可能会听到这样的说法:“位的含义是您希望它们的含义”。这意味着您可以想出多种方式来表示任何事物,您只需构建一个“映射”到您想要的值的位。例如,这里有一种奇怪的、异想天开的表示素数的方式。
    (bits) => value
    0001 => 2
    0010 => 3
    0011 => 5
    0100 => 7
    0101 => 11
    0110 => 13
    0111 => 17
    (and so on)
    这样的系统很难用数学计算,但它是一个示例,您不必受限于特定的做事方式。只要您构建例程以从预期输入生成预期输出,就可以使位到值的映射具有您想要的含义。
    这种意义是你强加在位上的东西的想法很重要。当您开始处理文本时,“编码”是强加于存储文本的位的含义,相同的位有时以不同的编码方案编码不同的字母。

    关于hex - 如何表示负的十六进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47213972/

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