I have the following program:
int main()
{
int64_t a = 241294423792285589;
printf("a = %lld, a << 63 = %lld", a, a << 63);
return 0;
}
I was expecting a << 63
to be 0, but it prints out:
a = 241294423792285589, a << 63 = -9223372036854775808
Why is this?