Python计算异或(10 ^ -9)

一、计算这道题需要知道二进制的运算及原码、反码、补码

1.正数的原码=反码=补码

2.负数(以-1为例)

1000 0001	=》原码,高位的1代表符号位,表示负数
1111 1110	=》反码,符号位不变,其余位按位取反
1111 1111	=》补码,在原码的基础上,符号位不变,其余位按位取反后+1

二、计算10 ^ -9

在这里插入图片描述

1.先把10和-9变成补码再进行^(异或)运算

10的补码为:0000 1010

计算负数的补码需先变成原码,再转为补码
-9的原码为:1000 1001
-9的补码为:1111 0111

2.计算机只认补码,因此10和-9的补码进行异或运算,异或运算的口诀是:相异为1,相同为0

0000 1010		#10的补码
1111 0111		#-9的补码
1111 1101		#异或的结果是补码

3.计算出的结果是补码,但人看的是原码,需再转回原码,记住:补码的补码是原码

1111 1101
方法:符号位不变,其余位按位取反后+1
10000011			

高位的1代表负号,因此最后结果为-3

三、整体思路:先变补码进行运算,再转原码得出结果

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值