求大神指导,为什么16位补码所表示的范围为-32768至32767,而不是我所推的-32767至32767?我的推导如下 5
2个回答
展开全部
位数太多,不便说明基本概念。
楼主用 4 位数,推导一下,应该是 -8~+7。
补码,是有严格的定义式的,参考:
http://zhidao.baidu.com/question/513374479.html
http://zhidao.baidu.com/question/294870512.html
楼主用 4 位数,推导一下,应该是 -8~+7。
补码,是有严格的定义式的,参考:
http://zhidao.baidu.com/question/513374479.html
http://zhidao.baidu.com/question/294870512.html
追问
-8~+7如何推导呢?
追答
补码定义式:
[X]补 = X ; 0 <= X < 2^(n-1)
[X]补 = 2^n - |X| ; - 2^(n-1) <= X < 0
n = 4 时,变成:
[X]补 = X ; 0 <= X < 8 ,即 0~+7;
[X]补 = 16 - |X| ; - 8 <= X < 0 ,即 -8~-1。
综合,就是:-8~+7。
---------------------
看楼主的插图,你所求出的范围,是原码的表达范围。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询