假设int为2字节,那么signed [int]的取值范围为-32768~+32767,我想问一下-32767是怎么得来的
signed[int]有符号整形数据以补码形式存放,最小值为-32768,它的二进制形式为1000000000000000,最高位1表示符号位,为负数,它是怎么转化为-3...
signed [int]有符号整形数据以补码形式存放,最小值为-32768,它的二进制形式为1000000000000000,最高位1表示符号位,为负数,它是怎么转化为-32768呢?
展开
4个回答
展开全部
因为二进制的负数是用补码表示的,2字节也就是16bit,可以有2^16种状态,也就是65536.
如果表示有符号数,那么首位为1的都是负数,为零的非负。
所以65536除以2就是可以表示的负数个数,从-32768到-1.
因为非负里面包含零,所以范围是0-32767.
所以总的范围就是-32678-32767。
如果表示有符号数,那么首位为1的都是负数,为零的非负。
所以65536除以2就是可以表示的负数个数,从-32768到-1.
因为非负里面包含零,所以范围是0-32767.
所以总的范围就是-32678-32767。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-05
展开全部
符号位不变,后面的取反加一,就为32768,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询