java - 为什么Integer.MIN_VALUE是-2^32而Integer.MAX_VALUE是2^31-1?

标签 java

我在 JDK 中看到 Integer.MIN_VALUE 是 0x80000000。考虑到原来是0x80000000,那么相反的是0x8fffffff,最后补码是0x8fffffff + (-1) = -2^32?那么 —2^32 是否是 1000 0000 0000 0000 0000 0000 0000 0000 位呢?

最佳答案

使用 32 位可以表示 2^32 个整数。

  • 2^31 为负
  • 2^31 - 1 为正
  • 1 等于 0

如果将它们相加,就会得到2^31 + 2^31 - 1 + 1 = 2^32

因此,最大(最大正数)整数为 2^31-1,最小(最大负数)整数为 -2^31

关于java - 为什么Integer.MIN_VALUE是-2^32而Integer.MAX_VALUE是2^31-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36325903/

相关文章:

java - 为什么 IntegerProperty 实现 Property<Number> 而不是 Property<Integer>?

java - 使用 JDBC 将 R 连接到 Hive

java - 我在运行 war 时遇到 FileNotFoundException

java - Repast 代理表可以从用户代码中调用吗?

java - 在我的程序中找不到这个错误

java - 数据可视化原型(prototype)(Java/Eclipse/DAO/关系型数据库)

Java swing 图形未更新

java - 从 process.getErrorStream() 读取时 BufferedReader 阻塞

java - 响应200正常,然后转到错误行

java - 缺少 Artifact com.oracle :ojdbc7 in eclipse