c语言:int的范围为什么是-2的31次方到2的31次方-1
4个回答
展开全部
在计算机内部,数值为负的整数采用补码进行表示。而负数的补码书原码的每一位取反后+1.故int32位表示的范围是-2的31次方到2的31次方-1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我先解答一下为什么最大值是2的31次方-1。int占四个字节共32位,最高位用0表示符号位,其余31位为1,那么二进制的31位1最大值就是:2^30+2^29+2^28+2^27+......+2^3+2^2+2^1=2^31-1
表示负数时,最高位为固定的符号位1,因为-0不需要表示,就用这个来表示-2^31。
表示负数时,最高位为固定的符号位1,因为-0不需要表示,就用这个来表示-2^31。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为第一位代表符号位,所以正数最大只能第一位0,后面31一个1,所以是2的31次方-1.
而负数只要第一位是1,后面随便变,所以是-2的31次方。
而负数只要第一位是1,后面随便变,所以是-2的31次方。
追问
为什么31个1就是2的31次方减1?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询