那么如果要再次使用unsigned/signed运算的结果,计算机是如何解释的呢?

So how does the computer interpret the result of unsigned/signed arithmetic if it is to be used again

首先,computer/processor 不关心给定的二进制数是有符号数还是无符号数,这取决于它在操作码中接收到的指令,它执行有符号或无符号算术,并且在给定的情况下,它将把数字解释为有符号或无符号。

subu rd,rs,rt

rs 存储 11100 rt 有 01000。 假设它应该做一个无符号算术 11100 - 01000 结果显然是 1010020 以十进制表示,因为我们执行了无符号算术(减法)。并且这个数字暂时存储在内存中的某个位置地址“rd”中以供再次使用。

这是否意味着存储在 rd 位置的数字将来只能用于无符号算术。

如果是:请澄清以下内容。 计算机如何真正知道它在使用rd中的数据时必须应用无符号算术接下来time.where是与此相关的数据(即rd只能使用无符号算术)存储。

那么这是否意味着计算机真的关心存储在地址 rd 中的数字是有符号的还是无符号的,这与第一条陈述相矛盾。

如果不是:为什么它可以用于不同类型的算术?这样做不会造成任何并发症。

Does this mean the number being stored at location rd can be used only for unsigned arithmetic in future.

没有

If no: why can it be used for a different type of arithmetic?

没有存储确定数字是有符号还是无符号的信息,将来可以用于有符号和无符号算术。当处理器使用后续指令对寄存器中的数据进行操作时,处理器对寄存器中数据的历史一无所知,因此 why? 的答案很简单,没有什么可以阻止它.

Won't doing this create any complications?

我想如果您正在使用汇编语言并且无缘无故地选择在无符号和有符号算术之间切换,那是可以的。通常人们使用像 C 这样的编译语言工作,在这种情况下,每个数字都有一个类型,并且是有符号或无符号的,并且在编译时该语言将生成使用与数字类型相对应的算术的机器代码。