题目:https://leetcode-cn.com/problems/bitwise-and-of-numbers-range/ 给定范围 [m, n],其中 0 1; // 1xxxxx...最高位复制了一个1到后面 =>11xxxxx... 有2个1 i|=i>>2; // 11xxxx...复制了2位1 => 1111xxxx... 有4个1 i|=i>>4; // 1111xxxx...复制了4个1 =>11111111xxx... 有8个1 i|=i>>8; // 11111111xxx... 复制了8个1 => 1111111111111111xxx... 有16个1 i|=i>>16; // 1111111111111111xxx... 复制了16个1 => 11111111...1111 有32个1 // 如果i最高位不足8或者16等,操作相当于|0,不变,所以此时的i变成了最高位后全是1x return i; } }
数字范围按位与(位运算/思维)
关注
打赏