2015-06-19 60 views
0

的符號位,我想轉換位操作,以獲得32位的int

(n < 0 ? 1 : 0) 

進位操作(假定二進制補拱)。性能方面的原因,可以使用

+1

是否允許無符號位移? – harold

+3

你不相信你的編譯器嗎? – leppie

+0

是的,允許無符號轉換。 – Jacko

回答

2

一個無符號偏移,

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

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

GCC執行此自動,其他編譯器也可以。或不。你的旅費可能會改變。

相關問題