プログラミングの為の数学と算数
■ このスレッドは過去ログ倉庫に格納されています
01031
NGNGあめ猫さんはちょっと間違ったみたい
0x10000 じゃなくて 0x10000-1 です
で補数を取った時の掛算のやり方
1、 絶対値を求めてから掛算して 結果の符号によって再度負数にする方法
桁数を可変にする多倍長の場合はこっちでやった方がいいかも
2、そのまま掛算する場合は
Bが負数の場合 Bを単純整数とみなすと B-N^Mになりますから
A*(B-N^M)=A*B-A*N^M
A,Bがともに負数の場合は
(A-N^M)*(B-N^M)=A*B-(A+B)*N^M+N^M^2 ・・・・N^M^2 は桁外になるので
結局 A,Bを符号無整数とみなして掛算して 負数なら M桁目から引けばよいという事になります
■ このスレッドは過去ログ倉庫に格納されています