求助 ull

P5657 [CSP-S2019] 格雷码

@[Eternal蒟蒻](/user/398190) ``ull``的上届是 $2^{64}-1$,你的``1<<n - 1`` 相当于先 1<<n 再 -1 ,但 1<<n 越界了所以自然溢出成了 $0$(应该是0吧,反正不是原数),再-1变成了 $-1$
by ningago @ 2022-06-05 09:54:13


(上界
by ningago @ 2022-06-05 09:54:25


@[ningago](/user/371968) 对的,但是为什么 ll 就能过呢?
by Celestial_Intertwine @ 2022-06-05 09:55:07


@[Eternal蒟蒻](/user/398190) ```cpp int main() { long long a,n; n = 64; a = 1 << n; std::cout << a; return 0; } ``` 这个代码的输出是1
by ningago @ 2022-06-05 09:56:46


@[ningago](/user/371968) 好吧看来是玄学混过去的
by Celestial_Intertwine @ 2022-06-05 09:57:57


@[Eternal蒟蒻](/user/398190) 有符号整数溢出是UB,所以雀食是混过去的(
by cinout001_Wii @ 2022-06-05 10:48:46


|