上海市企业服务云网站,职友集 一家做公司点评的网站,宁波市奉化区建设局网站,电子产品网站模板1 使用位运算替换部分乘法或除法
位移操作主要适用于无符号整数#xff0c;对于带符号数的位移#xff0c;特别是负数#xff0c;可能会导致问题#xff0c;如果你需要对负数执行除法或者乘法#xff0c;最好谨慎使用位移运算。
1.1 替换除法
当需要将一个数除以 2、4、…1 使用位运算替换部分乘法或除法
位移操作主要适用于无符号整数对于带符号数的位移特别是负数可能会导致问题如果你需要对负数执行除法或者乘法最好谨慎使用位移运算。
1.1 替换除法
当需要将一个数除以 2、4、8 等即 2 的幂次时可以用右移运算符 () 来替代除法操作。
int result x / 2; // 用除法
int result_opt x 1; // 用位移替代除法int result x / 4; // 用除法
int result_opt x 2; // 用位移替代除法1.2 替换乘法
当需要将一个数乘以 2、4、8 等时可以用左移运算符 () 来替代乘法操作。
int result x * 2; // 用乘法
int result_opt x 1; // 用左移替代乘法int result x * 4; // 用乘法
int result_opt x 2; // 用左移替代乘法2 在使用全局内存时如果不能同时满足读取和写入都是合并的情况下一般来说应当尽量做到写入操作是合并访问。