c# - 32 位整数的二进制 100...(31 个零)的值是多少?

标签 c# java bit-manipulation

这只是一个随意的想法。 100...(31 个零)的补码也是 100... 所以,这个值一定是0。但是我们知道0的二进制表示是000...

我知道它不能是 -0 和 +0,因为每个二进制表示都应该映射到一个唯一值。

最佳答案

是 −231。二进制补码只有一个零,负值范围比正值扩展一个数。是的,这意味着只有一个负数没有等价的正数——这有时被称为 »weird number«因为它是二进制补码构建方式的一个异常(exception)。

关于c# - 32 位整数的二进制 100...(31 个零)的值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5694983/

相关文章:

c# - MemoryStream 返回时禁用读取

c# - 用于将 WCF 服务发布到 Azure 的 web.config 更改

c# - Automapper 忽略第一个源字段字母

c# - AOP、Unity、方法的拦截

java - Grails 一对多关系

java - Java Web 应用程序上的打印服务

java - 如何创建一个实现 java.util.collections 的类

c - 如何将数字表示为 15 位宽的字段?

math - 如何在不使用任何算术运算的情况下找到 x mod 15?

c++ - 获取尾随 1 位的数量