6个回答
因为计算机中的整型一般用2个字节表示,即16位。第一位表示正负符号,所以负数最小是可以达到,2的15次方负值,正数部分虽然也可以有2的15次方个数值,但数值0占了一个,所以最大正数值为2的15次方减一。
在计算机内,定点数分为有符号数(signed)和无符号数(unsigned)。其中,有符号数的表示方法有三种:原码、反码和补码。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
计算机的字长为n位,n位二进制数的最高位为符号位,其余n-1位为数值位,采用补码表示法时,可表示的数X的范围是 -2的次幂≤X≤2的次幂-1。
扩展资料:
常见数据类型存储空间大小与范围:
1、Byte(字节型)用1个字节表示,数值范围: 0 - 255
2、Boolean(布尔型/逻辑型) 用2个字节表示,数值范围:True 或 False
3、Integer(整数型) 用2个字节表示,数值范围:-32,768 ~ 32767
4、Long(长整形)用4个字节表示,数值范围: -2,147,483,648 ~ 2,147,483,647
5、Single(单精度浮点型)用4个字节表示,数值范围:
负数范围:-3.402823E38 ~ -1.401298E-45
正数范围:1.401298E-45 ~ 3.402823E38
6、Double (双精度浮点型) 用8个字节表示,数值范围:
负数范围:-1.797,693,134,862,32E308 ~-4.940,656,458,412,47E-324
正数范围:4.940,656,458,412,47E-324 ~1.797,693,134,862,32E308
参考资料来源:百度百科-有符号数处理
参考资料来源:百度百科-数据类型
2 的 15 次方 减 1,为什么要减一?
这个数值,写成二进制,就是:0111 1111 1111 1111。
这个数值,有 15 个!
换算到十进制,就需要一位一位的相加,总共要加上 15 位,就太麻烦了!
把这个数值,加上 1,就是:1000 0000 0000 0000。
现在再换算到十进制,就是:2^15 = 32768。
再减去 1,就恢复到原来的数值:32767。