请教下C语言的问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 20:17:11
请问C中int型的范围为什么是-2的15次方到2的15次方减一啊???
为什么要减一请高手回答下谢谢~~~~

因为二进制的特殊性,若你声明了int i=10; 那么10在计算机内存中的样子就是二进制的 0000000000001010 , 那你若声明 int j=-10; 在计算机内存中就是 1111111111110110 ,在内存中为了能够表示负数,所以二进制的最高位为符号位,你单单声明为int 的话,就表示这是有符号的声明,二进制的最高位为符号位,0代表这是正数,1代表这是负数(也就是说-10的二进制数,就是10的二进制数全部取反在加1)

2的15次方减一=0111111111111111

数据在内存中是以二进制形式存放的,而int型又默认为有符号类型(最高位为符号位),这样,二进制的0000 0000 0000 0000 表示的是十进制的0,而1000 0000 0000 0000表示的却是十进制的-32768,因此,用int型表示的正整数就比负整数少一个啦