二分特殊情况 第一种:000…000111…111 查找第一个1 while (l != r) { mid = (l + r) / 2; l = mid + 1; r = mid; } 第二种:111…111000…000 查找最后一个1 while (l != r) { mid = (l + r + 1) / 2; // +1避免死循环 例 1 0 l = mid; r = mid - 1; }