プログラミングの為の数学と算数 vol.2
■ このスレッドは過去ログ倉庫に格納されています
0434デフォルトの名無しさん
2006/03/10(金) 16:18:42ret = (2 * a + b*sgn) / (2 * b);
として sgn を 1か-1にすればいい
あるいは
ret = (2 * a + b*(sgn+1)-b) / (2 * b);
とすれば sgn+1 は 0か2なので 0か-1の変数fを使い
ret = (2 * a-b + 2*b&f) / (2 * b);
xor結果の最上位で fを-1か0にすればいい
・右へのビット幅だけシフト
・インラインアセンブラを使って符号拡張命令
して、符号ビットを埋めて ゴチャゴチャやる方法があるけど、そんなの使いたい?
■ このスレッドは過去ログ倉庫に格納されています