在Linux內核源代碼,我發現下面的代碼:「>> =」在Linux內核源代碼中意味着什麼?
h++;
pending >>= 1;
它是__do_softirq(void)
一部分。但是「>> =」是什麼意思?我記得爲什麼不是「>>」? 謝謝!
在Linux內核源代碼,我發現下面的代碼:「>> =」在Linux內核源代碼中意味着什麼?
h++;
pending >>= 1;
它是__do_softirq(void)
一部分。但是「>> =」是什麼意思?我記得爲什麼不是「>>」? 謝謝!
它根本
pending = pending >>1;
總之它除以2一個unsigned int。
這是同一構造比+=
,/=
等
你還記得,因爲這不會存儲在變量移位操作的結果,這不只是pending >>1
。
這相當於
pending = pending >> 1;
哪個正確bitshifts在pending
位。這將會產生將無符號整除2的效果。>> < <是位移運算符,與=的組合行爲方式與+ =和/ = do相同。
謝謝你的回覆! –
它被2除以_unsigned_int。 C沒有指定發生在signed int上的情況。在這種情況下,最好使用/ =。 –
是的。精確度增加。我認爲這個結構除以2是非常有用的,因爲所有的編譯器都可能優化unsigned int上的'/ = 2'。您應該主要在使用int來存儲位時使用它。 –
@DougCurrie你的意思是一個*負號*有符號整數。 – ouah