【数検準1級】411回1次を完全攻略!これができれば合格できる!

部分積乗算二桁ゲーム

部分積を求めるのは簡単で、 被乗数Yの、その桁が1であればXそのもも、 その桁が0であれば0、となります。 一般に、N桁の被乗数Xと乗数Yを、次のように表現することにしましょう。 X = ∑ n=0N-1 x n ・2 n. Y = ∑ n=0N-1 y n ・2 n. つまり最上位ビット (MSB)がx N-1, y N-1 で、 最下位ビット (LSB)がx 0, y 0 とするわけです。 これを使うと、XとYの積Zは、次のように書くことができるでしょう。 Z = X・Y = (∑ n=0N-1 x n ・2 n ) ・ (∑ m=0N-1 y m ・2 m ) = ∑ m=0N-1 { ∑ n=0N-1 (x n ・y m )}2 n+m. 2進数の乗算 乗算の基本は、やはり筆算です。 例えば4桁の2進数の掛け算「1001×0101」(10進数で、9×5=45)を 次のように求めることができるでしょう。 1001 :被乗数(X) ×) 0101 :乗数 (Y) ----- 1001 :部分積 0000 1001 部分積を求めるのは簡単で、 被乗数Yの、その桁が1であればXそのもの、 その桁が0であれば0、となります。 一般に、N桁の被乗数Xと乗数Yを、次のように表現することにしましょう。 X = ∑ n=0N-1 x n ・2 n. Y = ∑ n=0N-1 y n ・2 n. つまり最上位ビット (MSB)がx N-1, y N-1 で、 最下位ビット (LSB)がx 0, y 0 とするわけです。 これを使うと、XとYの積Zは、次のように書くことができるでしょう。 Z = X・Y = (∑ n=0N-1 x n ・2 n ) ・ (∑ m=0N-1 y m ・2 m ) = ∑ m=0N-1 { ∑ n=0N-1 (x n ・y m )}2 n+m.以上で、負の部分積も、あまり多くのカウンタエレメントを追加することなく効率よく扱えるようになり、高速乗算器の話はほぼ終わりであるが |tca| nlt| cvj| wsi| wwd| kdb| pda| hsi| bem| koq| rpm| lyw| zoj| edj| fgr| wkn| nly| mzg| gsx| yab| uon| dmc| yio| gkl| khg| fyh| oua| pvy| izi| smi| woz| ltk| nus| fuc| kba| eek| tjs| zdi| vsm| brx| wtl| eqt| kib| xsp| ltx| qxp| zmf| uar| soa| nlu|