我希望能够访问 C++ 中数字的符号位。我当前的代码如下所示:
int sign bit = number >> 31;
这似乎可行,给我0
正数和-1
负数。-1
但是,我看不到负数是如何得到的:如果 12 是
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1100
然后 -12 是
1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 0011
并将其移动 31 位将使
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001
哪个是 1,而不是 -1,那么为什么当我移动它时会得到 -1?