首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分数八进制值的8的补

分数八进制值的8的补
EN

Stack Overflow用户
提问于 2022-09-10 08:22:53
回答 1查看 88关注 0票数 0

问题是,我必须用8的补码法进行八进制减法。问题是这样的:(611.21)base 8 - (304.42)base 8。减法部分很好,但是当取8的补码时,问题就出现了。在计算了7的补码,即(473.35)基数8之后,我们再加上1,使之成为8的补码。我的怀疑是,1是简单地被添加或1被添加到最右边的数字。

因为根据GeeksForGeeks的方法,

要找到b的补码,只需将1加到计算的(b-1)的补码中.

这样做,我的减法的答案是(474.35)基数8,但是如果你用正常的方式(没有8的补码法)做减法,答案是(304.57)基数8。

我在很多地方都在寻找解决方案,但我仍然处于一个两难的困境中,什么是正确的。

为了总结我的观点,我想问的是,当我们找到分数八进制值的8的补数时,我们只需将1加到7的补数中,还是把1加到答案的最右边。

EN

回答 1

Stack Overflow用户

发布于 2022-09-10 09:16:28

N基b中的一个数字,具有n位数的整数部分和m位小数部分。当你取一个b的补码时,实质上是从b^n中减去这个数字,即b^ N 。这是直观的,即使你有一个小数部分,在N。

当您必须处理(b-1)的补体时,情况会略有不同。当你必须处理整数时,情况相当简单。您只需从b^n - 1中减去这个数字。所以,如果你想要9的8的补数,它将是9-8=1,或者如果你想要10的补码,它是10-8=9-8+1= 2,这就是你所声称的,,找到b的补码,只需在计算的(b-1)的补码中加1。然而,只有当数字没有小数部分时,这种情况才成立。我们把减法1的思想推广到小数部分,从基数b到基b-1,所以如果你想把9的8.1减去9.9而不仅仅是9,那么(b-1)的补体被定义为(b^n - b^-m) - N。从这里可以很容易地找到整数的,b的补-(b-1)的补= b^n -N- ((b^n - b^-0) - N) = b^0 = 1.。

TLDR;

当找到小数八进制值的8的补数时,我们只需把1加到7的补数中,或者把1加到答案的最右边,只要你只需要处理整数,它们的意思是相同的。对于分数,将其添加到小数部分的最右边。可以用类似于上面的方法来证明这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73670330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档