位旋转以获得 32 位 int 的符号位

Bit twiddling to get sign bit of 32 bit int

我要转换

(n < 0 ? 1 : 0)

进入位旋转(假设 2s 补拱)。

出于性能原因。

使用无符号移位,

x = n >>> 31; // Java's unsigned shift

x = (int)((uint)n >> 31); // C#'s unsigned shift, the casts are effectively nop

GCC 会自动执行此操作,其他编译器也可能会这样做。或不。您的里程可能会有所不同。