對於 n 位乘數 y,布斯演算法檢查其2的補碼形式的最後一位和乙個隱含的低位,
命名為 y[i-1] ,初始值為 0 。對於 y[i], i = 0, 1, ..., n - 1,考察 y[i] 和 y[i - 1 ]。
當這兩位相同時,存放積的累加器 p 的值保持不變。當 y[i] = 0 且 y[i - 1] = 1 時,
被乘數乘以 2^i 加到 p 中。當 y[i]= 1 且 y[i - 1] = 0 時,從 p 中減去被乘數乘以
2^i 的值。演算法結束後, p 中的數即為乘法結果。
該演算法實現有符號數和無符號數相相乘。
#include
//#define _crt_secure_no_warnings
//用visual studio編譯**上上面這句話否則會報錯(scanf函式被vs認為不夠安全)
intmul
(short
int a,
short
int b)
return result;
}int
main
(void
)
C語言實現矩陣乘法
產生a 5行4列 b 4行3列 兩個隨機矩陣,每個元素是 10,10 之間的隨機整數並列印出來,列印出它們的乘積c矩陣。要求矩陣用 分隔開,以a,b,c的順序列印,各行對齊。include stdafx.h include include include include pragma warning...
矩陣乘法的c語言實現
矩陣乘法的c語言程式 include int main 賦值使陣列s元素初值全部為零 printf 請輸入矩陣a行數m1,列數n1 輸入矩陣a行數,列數 scanf d,d m1,n1 printf 請輸入矩陣b行數m2,列數n2 輸入矩陣b行數,列數 scanf d,d m2,n2 printf ...
C語言實現無符號乘法
本演算法採用的思想是部分積法,該演算法的思想參照 計算機組成原理 clements 該演算法只能實現兩個無符號數相乘,若要實現有符號數相乘,參考 兩個n位的數相乘,其結果最多有2n位,所以乘數和被乘數用unsigned short int,結果用unsigned int include define...