十进制(6-9)怎样用补码进行二进制运算?

 我来答
283802332
2012-09-21 · TA获得超过3310个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:174万
展开全部
  首先,介绍一下补码的编码规则:正数的补码等于原码,负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1。
  对两个带符号数+6和+9进行减法运算
  +6的补码的字节表示是:0000 0110B //正数的补码等于原码
  +9的补码的字节表示是:0000 1001B //正数的补码等于原码
   0 0 0 0 0 1 1 0 B
  - 0 0 0 0 1 0 0 1 B
  _______________________
  (1)1 1 1 1 1 1 0 1 //产生借位
  因为运算结果为一个字节数据(8个二进制位),最高位产生的借位丢失。即最左边的1(括号括起来的那个1)不要它 最后得 1111 1101
  由于是补码运算,所以结果也是补码
  将补码变成原码 逆过程哦 因为最高位是1,表示负,所以整个数减1 得 1111 1100 除了符号位 取反 1000 0011 因为1000 0011等于-3
  且6-9 = -3 所以运算结果是正确的
XHHISEA02274
推荐于2017-10-03 · TA获得超过8万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:3529万
展开全部
正数减一个数等于加这个数的补码
6(D)=0 0110(B);9=1 1001(B)
1 1001(B)补码=1 0111(B)
所以表示方法为0 0110+1 0111=1 1101
则原码为1 0010+0 0001=1 0011(B),结果即-3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fj081229
推荐于2017-10-10
知道答主
回答量:41
采纳率:0%
帮助的人:31.4万
展开全部
数据在内存中以补码形式存储,运算也以补码形式运算,运算结果也是补码。

最高位是符号位,正数时是0,负数时是1.以int类型2字节,16位二进制来算。

6(正数),补码=原码,即 00000110
-9(负数),原码 = 10001001 补码=11110111

相加如下(缝2进1,结果写0):
------ 0000110
--加--11110111
--------------------------
--得-- 11111101

所以结果是 11111101 ,化为原码,因为最高位是1,代表负数,所以原码为 10000011转化成十进制就是 -3
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式