2012-06-28 66 views

回答

16

它根本

pending = pending >>1; 

總之它除以2一個unsigned int。

這是同一構造比+=/=

你還記得,因爲這不會存儲在變量移位操作的結果,這不只是pending >>1

+4

它被2除以_unsigned_int。 C沒有指定發生在signed int上的情況。在這種情況下,最好使用/ =。 –

+0

是的。精確度增加。我認爲這個結構除以2是非常有用的,因爲所有的編譯器都可能優化unsigned int上的'/ = 2'。您應該主要在使用int來存儲位時使用它。 –

+0

@DougCurrie你的意思是一個*負號*有符號整數。 – ouah

2

這相當於

pending = pending >> 1; 

哪個正確bitshifts在pending位。這將會產生將無符號整除2的效果。>> < <是位移運算符,與=的組合行爲方式與+ =和/ = do相同。

+0

謝謝你的回覆! –

相關問題