nビットの符号ビット付き2進数同士の掛け算において、2nビットに符号拡張してから掛け算を行うと、すべての答えを表現できます。
例えば、4ビットの符号ビット付き2進数a_[[3]]a_[[2]]a_[[1]]a_[[0]]とb_[[3]]b_[[2]]b_[[1]]b_[[0]]の掛け算は、符号拡張すると、以下のようになります。
a_[[3]]a_[[3]]a_[[3]]a_[[3]]a_[[3]]a_[[2]]a_[[1]]a_[[0]]×b_[[3]]b_[[3]]b_[[3]]b_[[3]]b_[[3]]b_[[2]]b_[[1]]b_[[0]]
符号拡張しても値は変化しないのと、2の補数の掛け算より、8ビットの符号ビット付き2進数同士の掛け算は、答えが8ビットであるため、a_[[3]]a_[[2]]a_[[1]]a_[[0]]×b_[[3]]b_[[2]]b_[[1]]b_[[0]]の答えをすべて表現できます。
8ビットの符号ビット付き2進数で表現できる値の範囲は、10進数でー128~127です。上記のように符号拡張した4ビットの符号ビット付き2進数同士の掛け算の答えの範囲は、ー56~64なのでー128~127の範囲に入っています。
例えば、4ビットの符号ビット付き2進数1101(10進数でー3)と0101(10進数で5)の掛け算を符号拡張して、2の補数の掛け算と同じ方法で計算してみます。
11111101
× 00000101
----------
+ 11111101 (11111101×1の結果)
+ 00000000 (11111101×0の結果)
+ 11111101 (11111101×1の結果)
+ 00000000 (11111101×0の結果)
+ 00000000 (11111101×0の結果)
+ 00000000 (11111101×0の結果)
+ 00000000 (11111101×0の結果)
+ 00000000 (11111101×0の結果)
-----------------
000010011110001 (上記の8つの結果の足し算)
答えは、赤字の11110001(10進数でー15)です。