使用%进行求余:
输出在47 - 67之间;
使用位移进行求余
输出在31-32之间。
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之间。