我正在对 int 进行移位操作,但很惊讶它没有按预期出现。
int i, res;
i = 0x80000000;
res = i>>1; //results in 0xc0000000
res = (unsigned int) i>>1; //results in 0x40000000
整数中的一位移位怎么可能只对第 31 位起作用?
我正在对 int 进行移位操作,但很惊讶它没有按预期出现。
int i, res;
i = 0x80000000;
res = i>>1; //results in 0xc0000000
res = (unsigned int) i>>1; //results in 0x40000000
整数中的一位移位怎么可能只对第 31 位起作用?