[英]How to create a long value with all bits = 1
我嘗試了以下方法:
public static final long DEVICE_ID_UNKNOWN = 0xFFFFFFFFFFFFFFFF;
但它會導致
The literal 0xFFFFFFFFFFFFFFFF of type int is out of range
使用0xFFFFFFFFFFFFFFFFl
並且沒問題。 另一種方法是簡單地使用-1
因為該值也設置了所有位。 有關詳細信息,請參見http://en.wikipedia.org/wiki/Two%27s_complement 。
如果無法將數字表示為int,則需要指定數字的類型。 長是L或l(小寫)。 我更喜歡大寫,因為小寫很容易誤認為是1(一)。
public static final long DEVICE_ID_UNKNOWN = 0xFFFFFFFFFFFFFFFFL;
或者,您可以將值設置為-1,但在傳達“所有位1”的含義時可能不那么明確。
您可以使用以下任一方法:
public static final long DEVICE_ID_UNKNOWN = 0xFFFFFFFFFFFFFFFFL;
要么
public static final long DEVICE_ID_UNKNOWN = ~0L;
要么
public static final long DEVICE_ID_UNKNOWN = -1L;
獲得所有1的另一種方式
public static final long DEVICE_ID_UNKNOWN = ~0L;
public static final long DEVICE_ID_UNKNOWN = -1L;
使用public static final long DEVICE_ID_UNKNOWN = 0xFFFFFFFFFFFFFFFFL;
而是表示它是一個長值,而不是一個int值。
對不起,我不是java
家伙,但不會-1
嗎?
public static final long DEVICE_ID_UNKNOWN = 0xFFFF_FFFF_FFFF_FFFFL;
有用的參考http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.