Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 无符号整数除法示例_C - Fatal编程技术网

C 无符号整数除法示例

C 无符号整数除法示例,c,C,结束这个问题,因为我发布的链接不适合那里的除法算法,首先将除数的宽度加倍,使其位数是被除数的两倍,然后将值“向上”移到上半部分。然后一次向下移动一点 因此,该示例显示了一个4位除法0b0111除以0b0010。第一步是将除数的宽度加倍到8位,将其上移4位。因此,第一步中的除数是0b0010 0000。它们添加了空格以使两个4位字更清晰。然后,每一步它都会下移一位,最后一步的原始除数是0b0000 0010。@Cornstalks哇,谢谢,我确实想看这些视频,但我不能。我会试着谢谢你。谢谢@Chr

结束这个问题,因为我发布的链接不适合那里的除法算法,首先将除数的宽度加倍,使其位数是被除数的两倍,然后将值“向上”移到上半部分。然后一次向下移动一点


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

@Cornstalks哇,谢谢,我确实想看这些视频,但我不能。我会试着谢谢你。谢谢@Chris Dodd。我们是否也必须将股息宽度增加一倍?因为十进制7用0000 0111表示,所以不仅仅是0111。这只是针对每个字节的处理吗?严格地说,是的,为了进行比较和减法-但高位总是为零,因此实际上不需要将它们存储在任何位置。如果您将其实现为硬件块,不需要触发器,只需将它们硬连接为0。感谢您的详细回答。我能再问一件事吗?我正在用9/4进行测试,但是我需要经过多少次迭代?我认为我们必须经过迭代,直到除数达到最低有效位,但似乎不是这样。对于n位除法,扩展到2n位,需要n轮。这一点的关键在于移位和轮数是恒定的,所以在固定的时间内用硬件或用流水线传输的硬件很容易做到。很抱歉再次打扰您。似乎7除以2需要5轮。我错过了什么?谢谢你的帮助。