最近開始學習定點數的乘法運算,原碼的一位乘、兩位乘和二補數的一位乘和兩位乘。因此在這寫寫筆記分享給大家,順帶檢驗一下自己的學習成果。 這篇文章介紹一下原碼一位乘法的運算。
為了擔心有些小夥伴不清楚,我先說明一下小學二年級的乘法公式:被乘數 * 乘數 = 積
被乘數[X]原=X~f . X~0 X~1 X2…Xn
乘數[Y]原=Yf . Y0Y1Y2…Yn,則
乘積[Z]原=(Xf⊕Yf ) . (0. X0 X1 X2 …Xn)(0 .Y1 Y2 …Yn)
其中Xf為被乘數符號,Yf為乘數符號
Xf⊕Yf : 這個為兩符號位的互斥或運算,相同為0,不同為1。
eg:1⊕0=1 1⊕1=0
計算步驟要點:
第一步:初始部分積設全0,從乘數末位乘起。
第二步:乘數位為1,部分積加被乘數,結果右移一位。
第三步:乘數位為0,部分積加全0,結果右移一位。
第四步:重複上述操作直到乘數乘完為止。
注意:兩運算元的絕對值相乘,符號位單獨處理
多說無益,還是直接上例題吧!
例題:已知X=0.1101 Y=0.1011 求[X*Y]原。