位旋转以获得 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 会自动执行此操作,其他编译器也可能会这样做。或不。您的里程可能会有所不同。
我要转换
(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 会自动执行此操作,其他编译器也可能会这样做。或不。您的里程可能会有所不同。