11位补码可表示的整数范围是 ~1023.我算出来是-1023~1023. 答案是-1024~1023。
1个回答
展开全部
这个问题,不用算,分析一下即可得出这个结论。
11 位二进制,共有 2^11 = 2048 个不同的代码。
用补码形式代表有符号数时,就分成两个相等的部分,各有 1024 个。
用一半代表负数,即:-1~-1024。
用一半代表 0 和正数,即:0~1023。
综合,其表示范围,就是-1024~+1023。
-----------------------
因为-1024 并没有 11 位的原码和反码。
所以,用“取反加一”求补码,就无处下手。
但是,补码,就是补码。与原码反码,毫无关系。
求补码,不需要走“原码反码符号位取反加一”这条路。
按照“补码的定义式”,一步,就求出来了。
补码的定义式如下:
X >= 0, [X]补 = X;
X < 0, [X]补 = 模-|X|。
式中: 模=2^n, n 是二进制的位数。
11 位补码,模就是 2^11 = 2048,所以:
[-1024]补=2048-1024 = 1024。
如果你还需要二进制,你就自己转换一下:
1024 = 100 0000 0000(二进制)。
求补码,不要用“原码反码符号位取反加一”。
“原码反码符号位取反加一”这方法,就是个大坑。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询