支付網(wǎng)站設(shè)計石家莊疫情
1 使用位運算替換部分乘法或除法
位移操作主要適用于無符號整數(shù),對于帶符號數(shù)的位移,特別是負數(shù),可能會導(dǎo)致問題,如果你需要對負數(shù)執(zhí)行除法或者乘法,最好謹慎使用位移運算。
1.1 替換除法
當(dāng)需要將一個數(shù)除以 2、4、8 等(即 2 的冪次)時,可以用右移運算符 (>>) 來替代除法操作。
int result = x / 2; // 用除法
int result_opt = x >> 1; // 用位移替代除法int result = x / 4; // 用除法
int result_opt = x >> 2; // 用位移替代除法
1.2 替換乘法
當(dāng)需要將一個數(shù)乘以 2、4、8 等時,可以用左移運算符 (<<) 來替代乘法操作。
int result = x * 2; // 用乘法
int result_opt = x << 1; // 用左移替代乘法int result = x * 4; // 用乘法
int result_opt = x << 2; // 用左移替代乘法