代码之家  ›  专栏  ›  技术社区  ›  VaioIsBorn

如何表示unsigned int/long

  •  1
  • VaioIsBorn  · 技术社区  · 16 年前

    我正在读一些汇编教程,其中解释了有符号整数和无符号整数,以及它们在计算机内存中的表示形式之间的区别。

    我记得在数字的开头有一些位,所以它告诉我们整数是无符号的还是有符号的。

    如果有人知道,请回答。

    5 回复  |  直到 13 年前
        1
  •  2
  •   NullUserException Mark Roddy    13 年前

    维基百科页面 Signed Number representation 显示了有符号整数值和无符号整数值最常见的内存实现。

    Two's complement 是最常见的代表。

        2
  •  2
  •   Alexander Gessler    16 年前

    有许多可能的符号数字表示,最常见的是 two's complement.

        3
  •  2
  •   Ignacio Vazquez-Abrams    16 年前

    msb不确定数字是否有符号;在有符号数字中,它表示数字是否为负。在无符号数字中,它只是msb。这个程序决定一个数字是有符号的还是无符号的。

        4
  •  1
  •   Andrey    16 年前

    他和他。棘手的问题。有符号整数和无符号整数的表示完全相同。看着记忆,你永远无法分辨它们。它出自冯·诺依曼的一个原理。那么区别在哪里呢?不同之处在于它们的解释方式。如果变量是有符号的,编译器将对有符号的int使用命令。另外,如果我们知道这个数字是有符号的,它的第一位就告诉我们它是有符号的。转换为 ~i + 1 (c语法)以两种方式

        5
  •  0
  •   Bruno Brant    16 年前

    有许多可能的表示,每个都取决于 computer's organization . 最有名的是

    在这两种表示法中,可以测试第一个(最重要的)位,以确定数字是正(通常为关)还是负(位为开)。也就是说,如果你把这个号码当作 签署 . 如果告诉编译器将这些数字视为无符号,则符号位将用作数据(最大值的两倍 range 对于数据类型)。

    推荐文章