使用%進行求餘: 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之間。