|
|
閱讀ucosii的代碼,發(fā)現(xiàn)了一個(gè)小技巧。就是在使得任務(wù)進(jìn)入就緒狀態(tài)的時(shí)候,有:
OSRdyGrp|=OSMapTbl[prio>>3];
OSRdyTbl[prio>>3]|=OSMapTbl[prio&0x07];
這樣兩行,其實(shí)>>3就是除以8,而&0x07就是 取模運(yùn)算 mod 8 或者 % 8.
后一個(gè)技巧是我新學(xué)到的。任何取模運(yùn)算,只要是2的整數(shù)冪,都可以用這個(gè)技巧。比如,對(duì)8取模運(yùn)算,就是 位與 &0x7。
對(duì)4運(yùn)算則是,&0x3。 其實(shí)說白了,就是192,去除19剩余2,就是對(duì)10取模,去除1剩余92就是對(duì)100取模。
|
|