求余算法(非%!!)

使用%进行求余:
        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之间。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章