import ( "fmt" ) func rangeBitwiseAnd(m int, n int) int { bits := uint(0) for i := n; 0 < i; i, bits = i>>1, bits+1 { } and := 0 for mask := 1 << (bits - 1); 1 <= mask && (m&mask) == (n&mask); mask >>= 1 { and |= (m & mask) // Scan from the highest bit, just like 'longest common prefix' } return and }