c程序中基本整型的取值范围:-32768~32767是怎么算出来的?
1个回答
展开全部
int(整型)在你那个版本里是占用两个字节来存储的,每个字节8位,也就是16位的2进制,大家知道这样一个2进制数总是对应着一个正数,但是要表示正数和负数怎么办呢?聪明的科学家在限制的2进制数位数的前提下采取了补码(算法及详细见“补码”百度百科
http://baike.baidu.com/view/377340.htm)的形式来存储负数,第一位是符号位,也就是用它来表明这个数的符号(正数:0
负数:1)所以int型的最大正数为0111111111111111(15个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767。最小负数:1000000000000000,按照补码的运算,得这个2进制数对应的十进制为-32768,这样也解释了为什么最大正数与最小负数的绝对值差1
http://baike.baidu.com/view/377340.htm)的形式来存储负数,第一位是符号位,也就是用它来表明这个数的符号(正数:0
负数:1)所以int型的最大正数为0111111111111111(15个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767。最小负数:1000000000000000,按照补码的运算,得这个2进制数对应的十进制为-32768,这样也解释了为什么最大正数与最小负数的绝对值差1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询