在移动字节时,有一些场景看起来没有意义,例如
printf("shifted bytes %llx\n",(((long long)1 << 63 ))>>1);
输出 c000000000000000,对于 unsigned long long 或如果初始向左移位小于 63,则不会发生这种情况。但是,由于 1 在有符号 long long 和无符号 long long 中都存储为 0000000000000001 并且仅执行按位运算,因此似乎不存在就像有任何原因造成的差异一样,怎么会发生这样的事情?