簡體   English   中英

如何使用所有位= 1創建長值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM