gpt4 book ai didi

c - 无符号整数除法示例

转载 作者:行者123 更新时间:2023-11-30 18:44:29 25 4
gpt4 key购买 nike

我正在尝试在32位机器上实现64位/64位无符号整数除法。

不允许使用任何 64 位整数类型,例如 long、uint_64 或数组、指针。

所以我读了很多文章,包括存储、非存储算法来实现这一点。

但是所有这些都很难用 32 位实现,所以我最终遇到了下面的文章。

https://www.cs.utah.edu/~rajeev/cs3810/slides/3810-08.pdf

第 15 页中的除法示例确实很有意义,但我无法理解的一件事是,为什么 0010 0000 中表示 2 (0010) ,不是0010相反。

由于十进制 2 用二进制表示 0010 0000而不是00100000 0010 ,我很困惑要为除数分配多少位。

任何帮助将不胜感激。

最佳答案

对于除法算法,首先将除数的宽度加倍(因此其位数是被除数的两倍),然后将值“向上”移到上半部分。然后您一次将其向下移动一点。

该示例显示了 4 位除法(0b0111 除以 0b0010)。然后,第一步是将除数的宽度加倍(到 8 位),将其上移 4。因此第一步中的除数是
0b0010 0000(它们添加了空格以使两个 4 位话更清楚)。然后每一步向下移动一位,最后一步最终为 0b0000 0010(原始除数)。

关于c - 无符号整数除法示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946617/

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