1

为什么这段代码没有给出预期值n = 1000000000000value = 1099511627775 代码给出 255

long long now = n, count = 0, len = 0;
while (now >= 1) {
  count++;
  now /= 2;
}
len = (1 << count) - 1;
cout << len;
4

1 回答 1

7

1 << count常数1中是 aint不是 a long long
然后班次溢出。
你应该使用1ll << count.

于 2019-08-30T17:34:12.717 回答