23.数字范围按位与 发表于 2019-02-06 更新于 2025-04-02 分类于 programming 题目 解析 与&只要有一个为0,则与的所有数为0 对每个 位 分别判断是否有0 首先判断m的第i位是否为0 然后判断第i位为0,且$>$m的最小的数是否大于n,如果大于,则这些都为1 代码12345678910int rangeBitwiseAnd(int m, int n) { int res = 0; for(int i = 0; (1ll << i) <= m; i++) { if(m >> i & 1) { if(((m & ~((1ll << i) - 1)) + (1ll << i)) > n) res += (1 << i); } } return res;}