gpt4 book ai didi

math - 使用固定大小位宽寄存器的偏移二进制算法是否有任何常规规则?

转载 作者:行者123 更新时间:2023-12-05 07:21:58 26 4
gpt4 key购买 nike

假设我们有两个固定大小的二进制数(8 位),例如00000101 (5)00100000 (32)

任务是将它们添加到偏移量二进制(超过 128)中。是否有关于如何进行此操作的具体规则?

例如,我是否会先将两个数字转换为偏移二进制表示法,然后将它们相加,然后再减去偏移量(因为我加了两次)?但如果是这样,考虑到虚数寄存器只有 8 位宽,溢出又如何呢?

或者我会先减去多余部分然后加上第二个数字吗?偏移量二进制算法有什么约定俗成的规则吗?

我正在准备计算机体系结构和计算机数据算法的考试。这是上一学期练习单上的任务。我已经在网上广泛搜索了答案,但似乎找不到可靠的答案。

最佳答案

我不知道这个操作的“常规规则”是什么,但我可以告诉你我在做机器码时是如何做这个操作的。

当偏移量是溢出寄存器的第一个数字的一​​半时,此方法效果很好。这就是您的情况,因为偏移量是 128 并且 8 位寄存器在 256 上溢出。当您要添加的两个数字已经采用偏移格式时,这种方法特别有效。

方法是:将两个偏移量相加,作为无符号加法,忽略任何溢出,然后翻转最高有效位。

在您的情况下,您要添加 10000101(偏移量为 5)和 10100000(偏移量为 32 ).在 00100101 中添加这些结果,因为最高有效位溢出。翻转最高有效位导致 10100101,这确实是偏移量格式的 37

此方法可能会导致溢出,但前提是结果太正或太负而无法适应偏移量格式。在大多数 CPU 中,这两个操作(无符号加法和翻转 MSB)实际上是微不足道的。

关于math - 使用固定大小位宽寄存器的偏移二进制算法是否有任何常规规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56687763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com