C语言题,求指点!!

8的二进制是1000这题答案为什么要在前面加那么多的1... 8的二进制是1000 这题答案为什么要在前面加那么多的1 展开
 我来答
dreamseaKIK
2020-11-13 · TA获得超过670个赞
知道小有建树答主
回答量:463
采纳率:81%
帮助的人:165万
展开全部
首先你得了解计算机中所有的数据都是2进制存储的,所以然后-8是个负整数,从选项答案中可知这个计算机是个16位计算机(因为答案都是16位的二进制数),其中第一位是符号位,正数是0,负数是1,其余位数是具体表示
而数值在计算机中存储都是以它的补码形式存储的,什么是补码你可以去网上了解下计算机数的真值、原码、补码相关内容。正整数原码等于补码,负整数的补码等于原码除符号位外所有位数取反,然后加1
那么题目中-8的原码=1000 0000 0000 1000
除符号位外取反=1111 1111 1111 0111
然后再加1 = 1111 1111 1111 1000
所以选A
清晨I路上
2020-11-13
知道答主
回答量:7
采纳率:0%
帮助的人:3052
展开全部
这是32位二进制最高位为符号位,0表示正数,1表示负数,剩下的31位表示的范围是:±(2^31-1)之间。也就是这里的最高位的1表示是负数,后面的1000表示8,所以结果就是-8呀。如果没有前面的1,那表示的就是8,不符合题意
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最大的宝宝
2020-11-13 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:354万
展开全部
上学没听课吧?这是补码格式,把每个选项加上8的补码值1000,和为0(最高位的进位要丢弃)的那个答案就是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式