首页 > 解决方案 > 数学等价于双右移和 AND 运算符?

问题描述

我必须在我的程序代码中重写以下表达式:

arr[i] = (arr[i] << 16) & 0x00FF0000;

我可以用乘法/除法运算符重写它吗?

标签: operatorsshift

解决方案


它应该是

arr[i] = (arr[i] % 256) * 65536;

但按位运算更快


推荐阅读