2011-12-25 15 views
2

"/ 6"と書くのではなく、除算演算子を取り除くために何を書きますか?除算演算子を削除するにはどうすればよいですか?

int a ; 
c = a/6 ; 

このトピックについて詳しく知っていれば、b!= 2の倍数のときに一般的なアルゴリズムを教えてください。

EX:

など

B = 1、3、5、6、7、9、10、

+9

ヒント:*除算はちょうど繰り返される減算です。* –

+3

もう1つのヒント:1/6の結果を掛けることができます。 – DOK

+0

私は質問にいくつかの説明をするように頼む必要があります: - 分割の全体を取得したいですか? - 2で除算されます^ k - bとは何ですか? - 2の倍数または2の累乗を意味しますか? –

答えて

1

さて、減算シフトアンド(>>/を交換し、必要に応じて-の一般的な形、一般に2のべき乗に見られる)は、除算演算がintの場合の処理​​なので、どのように除算することが期待されるのかは分かりません。彼らがモジュラス(%)で置き換えると言えば、私はそれらを真剣に受け入れることが難しいでしょう。 floatまたはdoubleの場合は、精度をあまり失わない限り、逆数(コンパイル時にコンパイル時にコンパイル時に移動する)で乗算を試みることができますが、固定型に頼らずに積分型を扱うのは難しくなりますポイント表示。

関連する問題