Binary 需要八进制数减法的帮助吗

Binary 需要八进制数减法的帮助吗,binary,numbers,octal,Binary,Numbers,Octal,所以我试图理解无符号和有符号八进制减法之间的区别,如果八进制数是6位。例如,八进制76-八进制64: 我首先将76转换成二进制,变成111 110和64,再转换成二进制,变成110和100: 但问题是,如果这些八进制数表示有符号的6位八进制数,这是否意味着111 110为负数,110 100也为负数,这意味着减法运算符将与第二个八进制数的负号相消,从而产生加法?或者我们只是正常地处理它,正常地减去2个二进制数,然后再看后面的符号?你的符号表示应该不重要 以十进制-1为例,它在6位八进制中是077

所以我试图理解无符号和有符号八进制减法之间的区别,如果八进制数是6位。例如,八进制76-八进制64: 我首先将76转换成二进制,变成111 110和64,再转换成二进制,变成110和100:


但问题是,如果这些八进制数表示有符号的6位八进制数,这是否意味着111 110为负数,110 100也为负数,这意味着减法运算符将与第二个八进制数的负号相消,从而产生加法?或者我们只是正常地处理它,正常地减去2个二进制数,然后再看后面的符号?

你的符号表示应该不重要

以十进制-1为例,它在6位八进制中是077(用0前缀表示八进制,假定2的补码表示)

然后,如预期的那样,
077-077=000
。在二进制中,十进制-1是
111
。但是-(-1)是1,这是八进制001<代码>077-077=077+001=000,溢出被截断

也可以直接考虑基8算法。代码>076-064=012。不是像十进制那样借用10,而是借用8。考虑<代码> 012 - 003 < /代码>。从012的1中借用8并将其添加到2中<代码>00{8+2}-003=007

如果076是有符号的(假设2是补码),那么在十进制中,它是-2。同样,十进制的064是-12。差异为
-2-(-12)=10
,八进制为012。无差异,无论是否签名


符号表示可以在算术运算后进行

您的签名陈述应该无关紧要

以十进制-1为例,它在6位八进制中是077(用0前缀表示八进制,假定2的补码表示)

然后,如预期的那样,
077-077=000
。在二进制中,十进制-1是
111
。但是-(-1)是1,这是八进制001<代码>077-077=077+001=000,溢出被截断

也可以直接考虑基8算法。代码>076-064=012。不是像十进制那样借用10,而是借用8。考虑<代码> 012 - 003 < /代码>。从012的1中借用8并将其添加到2中<代码>00{8+2}-003=007

如果076是有符号的(假设2是补码),那么在十进制中,它是-2。同样,十进制的064是-12。差异为
-2-(-12)=10
,八进制为012。无差异,无论是否签名


符号表示可以在算术运算后进行

啊,明白了。谢谢,明白了。谢谢