Re: [問題] 長整數的乘法問題.......
※ 引述《liu2007 (薯)》之銘言:
: 我的問題是「長整數的運算」
: 用C++ 6.0 寫的
: 加法跟減法都有做出來
: 但是兩個長整數的乘法
: 每個位數之間的處理狀況是在是太多了
: 所以我想不出快速的解法
: 只好用土法煉鋼的方式
: R = A * B
: 設一個count 存乘數 count = B
: 然後設一個Result 存結果 R = 0
: 然後設一個迴圈
: while ( cout != 0 )
: {
: R = R+A;
: count--;
: }
: 簡單的說就是電腦的原理: 連加
: 以上是我的想法,不是程式碼
: 想請問版上高手是否有更快速的方法??
: 就是直接對每個bit做處理
: 總共做 bit 大次就好了
: 謝謝回答~
剛剛想的內容 可能有瑕疵
1st.先完成 32bit * 32bit 存成64bit的結果
2nd.從第一步類推到第二步 完成64bit * 64bit
1st.的作法:
有兩個32bit的整數A與B
A = AH*2^16 + AL , B = BH*2^16 + BL; AH,AL與BH,BL都是16bit的整數
A*B = AH*BH*2^32 + (AH*BL + AL*BH)*2^16 + AL*BL;
AH*BH , AH*BL , AL*BH 與AL*BL都是32bit的整數
把以上四各轉化成相對應的64bit整數後 加起來就是結果
2nd.的作法:
類似1st. 把64bit的整數拆成兩個32bit的整數 各別相乘之後再相加即可
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.190.7
推
10/28 19:58, , 1F
10/28 19:58, 1F
→
10/28 21:18, , 2F
10/28 21:18, 2F
→
10/28 21:18, , 3F
10/28 21:18, 3F
→
10/28 22:02, , 4F
10/28 22:02, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):