0

重複の可能性:
ビットごとの演算子で除算を実装
する *、/、+、-、% 演算子を使用せずに数値を 3 で除算する

私はインタビューでこの質問に出くわしました。除算演算子を使用せずに数値を 5 で除算する方法があるかどうか、およびビットごとの演算子のみを使用して可能な解決策が存在するかどうかを知りたいです。番号は、署名付きおよび署名なしにすることができます。+、-、/、* および % を使用しない方法を提案してください。

4

3 に答える 3

0

私の最初のアイデアは、単に 0.2 を掛けることでした (しかし、頭のてっぺんからビット単位の演算子を使用してそれを実装する方法がわかりません)。

于 2012-12-14T12:42:56.820 に答える
0

ゼロになるまで除算を減らして、一方の数値を他方の数値から減算するだけです:D

int number = 25;
int divisor = 5;
int result = 0;
while((number-divisor)>=0){
  result++;
  number = number - divisor;
}
于 2012-12-14T12:43:57.680 に答える
0

私の質問に対する答えを提供しているように見えるこのリンクから抜け出す方法を見つけたようです。 http://codegambler.wordpress.com/2009/08/11/division-operation-without-using-division-operator/

于 2012-12-14T12:52:32.357 に答える