以前、なんとなくわかったようなつもりで放置して
いた符号付きの多ビット乗算の計算方法。
http://www.atmel.com/Images/doc0936.pdf
http://www.atmel.com/Images/doc1631.pdf
ATMELのアプリケーションノートに計算方法書いて
あるからこれ使えばいいんだろ…とか思ってた
んだけど、そういえば「符号付き×符号付き」の
掛け算がどんな仕組みで計算合うのかよく理解
できてなかったなぁとか思い出す。
8ビット×8ビットなら符号付きでも符号無しでも
mul命令系で好きなもの使えばいいんだけど、16×16
の符号付きに拡張する場合、単に最上位ビットが
符号をあらわす2の補数表示の場合はビヨーンて
伸ばせばいいの?と。
ちょい調べてみる。
http://wentwayup.tamaliver.jp/e165237.html
やっぱ2の補数表示の最上位ビットを参照して符号拡張
するっていうことでやっぱいいみたい。筆算の計算過程
を見せられるとよく理解できる。
ただ、掛けられる数が2の補数表示の負数で
掛ける数が正数の場合は体感的にもしっくりくる
んだけど、逆の場合って、どういう風に解釈すれば
いいんだろうなぁ?あと両方とも負数の場合も
そうだなぁ。
筆算で書いたら、多分単純に順序が変わるだけだから
一緒だろってことだと思うんだけど、本能的に、
脊髄反射的に解釈したいんだよなぁ…
|
|
|