2012-12-14 57 views
-2

可能重複:
implement division with bit wise operator
Divide a number by 3 without using *, /, +, -, % operators除以5,一些不使用除法運算符

我在接受採訪時碰到這個問題就來了。我想知道是否有任何可能的方法可以將數字除以5而不使用除法運算符,以及是否存在僅使用位運算符的任何可能的解決方案。我通過使用重複減法直到零逼近來計算出一個。數字可以被簽名和未簽名。 請不要使用+, - ,/,*和%來提出任何建議。

+5

0.2乘以呢? – salva

+1

「數字」是什麼格式? 2s補碼整數?浮點 ? BCD?其他? –

+0

考慮格式爲十進制格式 –

回答

0

我的第一個想法是隻乘以0.2(但我不知道如何實現,使用按位運算符從我頭頂的解決方案)。

0

簡單地減小師減去另一個數字,直到你達到零:d

int number = 25; 
int divisor = 5; 
int result = 0; 
while((number-divisor)>=0){ 
    result++; 
    number = number - divisor; 
} 
+0

但不允許減法 – Omkant

+0

@Omkant - 我不相信減法已被排除。無可否認,儘管如此,這個算法對於大n來說會很慢。 –

+1

@WillA現在它已經。 – irrelephant