补码求真值? [X]补 = 10001110,求X的真值?

 我来答
吴立公冶如意
2019-04-30 · TA获得超过1053个赞
知道小有建树答主
回答量:282
采纳率:100%
帮助的人:5.3万
展开全部
1.正数,原码= 补码.
2.[X]补 = 10001110,最高位为1,为负数!
负数补码求原码步骤:
假设无符 10001110B=128+8+4+2=142
256D - 10001110B = 256 - 142 = 114
所以,X]补 = 10001110,求X的真值 -114.
详细理论:
C语言、补码.
1.任何数值是以补码存放在内存中的.
2.正数的补码和其原码相同.补码 = 原码.
3.负数的补码的两种求法:(假设8bit,即8位)
(1).是将该数的绝对值的二进制形式,按位取反,再加1.
例.求-10的补码.
第一步是取-10的绝对值10;
第二步取10的二进制形式为00001010;
第三步对00001010取反得11110101;
第四步再加1得11110110.
所以-10在内存中就以11110110形式存放.
(2).256-欲求的负数的绝对值 = 此负数的补码.注意:256 - 的是这个负数的绝对值,而不是这个数
.也就是说 256 -|负数|=补码.求其原码,则 256 - 补码 = |负数| ,则原码需要把首位变为1即可.
例.求-10的补码.
第一步是 256 - |-10|=246.
第二步把246变为二进制,11110110.
所以-10在内存中就以11110110形式存放.
两种方法比较下来,显然,第二种更为简便!
4.反码:把每位取反,即0变1,1变0即可.
5.一个有符号定点数的最高位为符号位,0是正数,1是负数.
笔者认为,对于原码、补码、反码的追究无需深入,只需要知道数据在计算机中以补码形式存储即可,
至于怎么存储是计算机的事情.当然,大学里面的结业考试或计算机等级考试可能会有个别计算这个的
做而论道
高能答主

2022-03-30 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部

知道补码,求真值,是非常简单的。


你既不用求“反码原码”,也不用想着“符号位不变”。


“取反加一”或“减一取反”,都是不需要的。


你就直接进行【数 制 转 换】即可。


比如:


八位的补码:1000 1110。


首位 1,既代表负数,也代表-128。


其余都是正数: 8 + 4 + 2 = 14。


求总和,故其真值就是:-114。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式