求餘算法(非%!!)

使用%進行求餘:
        DWORD x = 31;
DWORD y = 16;

unsigned k = 0;
DWORD t1 = GetTickCount();
for(k=0; k<10000000; k++){
y = x % 16;
}
TRACE("\n%lu\n", GetTickCount() - t1); 
輸出在47 - 67之間; 

 使用位移進行求餘

        DWORD x = 31;
DWORD y = 16;

unsigned k = 0;
DWORD t1 = GetTickCount();
for(k=0; k<10000000; k++){
y = ((x << 28) >> 28);
}
TRACE("\n%lu\n", GetTickCount() - t1);   

輸出在31-32之間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章