int 类型取值范围的困惑int类型在 内存占16位,取值范围是(-2的15次方) (2的15次方-1)我想问的是 取值

1个回答

  • 在内存中,正数的原码和补码是一样的,而负数的补码为其绝对值的原码按位取反后加1.

    对于补码是0000000000000000时,对应的值为0

    补码范围是0000000000000001-0111111111111111,对应的值为全部正整数,即1-2^15-1.

    补码范围是1000000000000001-1111111111111111,对应的原码是100000000000001-111111111111111,值的范围是-1~-(2^15-1).

    还有一个数是100000000000000,它不能使用补码计算公式进行计算的.是计算机内部直接用它来表示-2^15.你可以参考一下:http://blog.csdn.net/aiirr/archive/2007/12/28/1998545.aspx