二进制中0-1为什么=1?

 我来答
锡永
推荐于2019-10-18 · TA获得超过419个赞
知道小有建树答主
回答量:58
采纳率:0%
帮助的人:88.5万
展开全部
举个例子吧,假设寄存器是32位的,现在的CPU有64位的,但32位的操作系统,执行时是用32的寄存器,寄存器向下兼容。
假设0和1分别在A、B寄存器中,执行结果放在C寄存器中。
A:0 0000000000000000000000000000000
B:1 0000000000000000000000000000001
你执行A-B,实际是对A取补码,B取补码,两个相加放在C中,C是补码,你通过计算可以得到它的原码。
A的补码是0 0000000000000000000000000000000
B的补码是1 1111111111111111111111111111111
A补码加B补码放在C中,C即为1 1111111111111111111111111111111
而C的原码我们知道C的补码-1 结果取反即为原码,
所以C的原码为1 0000000000000000000000000000001
即结果为-1.
注意:最左边标识符号位,0为正,1为负。从左到右表示从高位到低位。
你可以注意最右边的位,你发现可以和你说的那样,A最右边是0,B最右边是1,而在结果C中的最右边是1,可能刚好和你说的现象相符吧,但是从单个位上看。
0-1的结果肯定是-1的,如果你的寄存器只有1位,那结果溢出,这时就是1.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式