On Wednesday, 25 May 2022 at 12:42:04 UTC, step8 wrote: > I run following test code: > int v1 = 22; > int v2 = 23; > writeln( v1<<8 + v2 ); > writeln( v1<<8 | v2 ); > > result is 0 and 5655 > Why ( v1<<8 + v2 ) = 0 ? `+` has a higher precedence than `<<`, so the first line is actually `v1 << (8 + v2)`.