contributed by <kk908676
>
這是經典的「整數實現的向上除法」,避免使用浮點數:
至少要幾格能裝下 n 單位,每格能裝 d 單位
的場景由於這個 MPI 實作是以 31-bit 為單位儲存每一段數字(因為乘法可能會進位到第 32 位),所以這個掩碼用來確保每段最大為 2^31 - 1。
k是 op1 第 n 位與 op2 第 m 位相乘的 bit 個數
每輪都要把 r 乘以 2,並把 n 的第 i 位塞進來。從高位往低位做二進位長除法
這是經典的輾轉相除法(Euclidean Algorithm):
程式中: