Tag: 负数

右移C中的负数

我有C代码,我在其中执行以下操作。 int nPosVal = +0xFFFF; // + Added for ease of understanding int nNegVal = -0xFFFF; // – Added for valid reason 现在,当我尝试 printf (“%d %d”, nPosVal >> 1, nNegVal >> 1); 我明白了 32767 -32768 这是预期的吗? 我能够想到类似的东西 65535 >> 1 = (int) 32767.5 = 32767 -65535 >> 1 = (int) -32767.5 = -32768 也就是说,-32767.5四舍五入为-32768。 这种理解是否正确?