如何划分大数字?

3 c largenumber

我有一个存储在2个变量中的大数(整数,无符号)(如您所见,数字的高低部分):

unsigned long long int high;
unsigned long long int low;
Run Code Online (Sandbox Code Playgroud)

我知道如何添加或减去其他一些变量.

但我需要划分那种数字.怎么做?我知道,我可以减去N次,但也许有更好的解决方案.;-)

语言:C

小智 6

是.它将涉及转移,我不建议在C中执行此操作.这是一个罕见的例子,其中汇编程序仍然可以证明其价值,轻松使事情运行速度提高数百倍(我不认为我夸大其词这个.)

我没有声称完全正确,但以下内容应该让你去:

(1)将结果初始化为零.

(2)将除数尽可能多地移到左边,而不要让它变得大于被除数.

(3)从被除数中减去转移的除数,并将结果加1.

(4)现在将除数向右移动直到再次,它小于剩余的被除数,并且对于每个右移,左移结果为一位.除非停止条件满足,否则返回(3).(停止条件必须是"除数已经变为零",但我不确定.)

回到一些真正的编程问题真的很棒:-)