public final class Long extends Number implements Comparable<Long>
Long
クラスは、プリミティブ型long
の値をオブジェクトにラップします。Long
型のオブジェクトには、型がlong
の単一フィールドが含まれます。
さらにこのクラスは、long
をString
に、String
をlong
に変換する各種メソッドや、long
の処理時に役立つ定数およびメソッドも提供します。
実装にあたっての注意: 「bit twiddling (ビット回転)」メソッド(highestOneBit
やnumberOfTrailingZeros
など)の実装は、Henry S. Warren, Jr. 著『Hacker's Delight』(Addison Wesley, 2002)に基づいています。
修飾子と型 | フィールドと説明 |
---|---|
static int |
BYTES
2の補数バイナリ形式で
long 値を表すために使用されるバイト数。 |
static long |
MAX_VALUE
long に設定可能な最大値263-1を保持する定数。 |
static long |
MIN_VALUE
long に設定可能な最小値 -263を保持する定数。 |
static int |
SIZE
2の補数バイナリ形式で
long 値を表すのに使用されるビット数。 |
static Class<Long> |
TYPE
プリミティブ型
long を表すClass インスタンス。 |
コンストラクタと説明 |
---|
Long(long value)
指定された
long 引数を表す、新しく割り当てられたLong オブジェクトを構築します。 |
Long(String s)
String パラメータで示されるlong 値を表す、新しく割り当てられたLong オブジェクトを構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
static int |
bitCount(long i)
指定された
long 値の2の補数バイナリ表現での、1のビットの数を返します。 |
byte |
byteValue()
この
Long の縮小プリミティブ変換後の値をbyte として返します。 |
static int |
compare(long x, long y)
2つの
long 値を数値的に比較します。 |
int |
compareTo(Long anotherLong)
2つの
Long オブジェクトを数値的に比較します。 |
static int |
compareUnsigned(long x, long y)
2つの
long 値を符号なしとして処理して数値的に比較します。 |
static Long |
decode(String nm)
String をLong にデコードします。 |
static long |
divideUnsigned(long dividend, long divisor)
第1引数を第2引数で除算した符号なしの商を返します(各引数と結果は符号なしの値として解釈されます)。
|
double |
doubleValue()
この
Long の拡張プリミティブ変換後の値をdouble として返します。 |
boolean |
equals(Object obj)
このオブジェクトを指定されたオブジェクトと比較します。
|
float |
floatValue()
この
Long の拡張プリミティブ変換後の値をfloat として返します。 |
static Long |
getLong(String nm)
指定された名前のシステム・プロパティの
long 値を判定します。 |
static Long |
getLong(String nm, long val)
指定された名前のシステム・プロパティの
long 値を判定します。 |
static Long |
getLong(String nm, Long val)
指定された名前のシステム・プロパティの
long 値を返します。 |
int |
hashCode()
この
Long のハッシュ・コードを返します。 |
static int |
hashCode(long value)
Long.hashCode() との互換性がある、long 値のハッシュ・コードを返します。 |
static long |
highestOneBit(long i)
指定された
long 値の最上位(「もっとも左側」)の1のビットの位置に最大で1つの1のビットを持つlong 値を返します。 |
int |
intValue()
この
Long の縮小プリミティブ変換後の値をint として返します。 |
long |
longValue()
この
Long の値をlong 値として返します。 |
static long |
lowestOneBit(long i)
指定された
long 値の最下位(「もっとも右側」)の1のビットの位置に最大で1つの1のビットを持つlong 値を返します。 |
static long |
max(long a, long b)
Math.max を呼び出した場合と同様に、2つのlong 値の大きいほうを返します。 |
static long |
min(long a, long b)
Math.min を呼び出した場合と同様に、2つのlong 値の小さいほうを返します。 |
static int |
numberOfLeadingZeros(long i)
指定された
long 値の2の補数バイナリ表現の最上位(「もっとも左側」)の1のビットに先行するゼロのビットの数を返します。 |
static int |
numberOfTrailingZeros(long i)
指定された
long 値の2の補数バイナリ表現で最下位(「もっとも右側」)の1ビットに続くゼロのビットの数を返します。 |
static long |
parseLong(String s)
文字列の引数を符号付き10進数
long として構文解析します。 |
static long |
parseLong(String s, int radix)
2番目の引数に指定された基数をもとにして、文字列の引数を符号付き
long として構文解析します。 |
static long |
parseUnsignedLong(String s)
文字列の引数を符号なし10進数の
long として構文解析します。 |
static long |
parseUnsignedLong(String s, int radix)
2番目の引数に指定された基数をもとにして、文字列の引数を符号なし
long として構文解析します。 |
static long |
remainderUnsigned(long dividend, long divisor)
第1引数を第2引数で割った符号なしの余りを返します。各引数と結果は符号なしの値として解釈されます。
|
static long |
reverse(long i)
指定された
long 値の2の補数バイナリ表現でビットの順序を逆にして取得された値を返します。 |
static long |
reverseBytes(long i)
指定された
long 値の2の補数バイナリ表現でバイトの順序を逆にして取得された値を返します。 |
static long |
rotateLeft(long i, int distance)
指定された
long 値の2の補数バイナリ表現を指定したビット数だけ左に回転して取得された値を返します。 |
static long |
rotateRight(long i, int distance)
指定された
long 値の2の補数バイナリ表現を指定したビット数だけ右に回転して取得された値を返します。 |
short |
shortValue()
この
Long の縮小プリミティブ変換後の値をshort として返します。 |
static int |
signum(long i)
指定された
long 値の符号要素を返します。 |
static long |
sum(long a, long b)
+演算子のように、2つの
long 値を加算します。 |
static String |
toBinaryString(long i)
long 引数の文字列表現を、基数 2の符号なし整数として返します。 |
static String |
toHexString(long i)
long 引数の文字列表現を、基数 16の符号なし整数として返します。 |
static String |
toOctalString(long i)
long 引数の文字列表現を、基数 8の符号なし整数として返します。 |
String |
toString()
この
long の値を表すString オブジェクトを返します。 |
static String |
toString(long i)
指定された
long を表すString オブジェクトを返します。 |
static String |
toString(long i, int radix)
2番目の引数を基数として、1番目の引数の文字列表現を返します。
|
static String |
toUnsignedString(long i)
引数の文字列表現を、符号なし10進値として返します。
|
static String |
toUnsignedString(long i, int radix)
1番目の引数の文字列表現を、2番目の引数で指定された基数の符号なし整数値として返します。
|
static Long |
valueOf(long l)
指定された
long 値を表すLong インスタンスを返します。 |
static Long |
valueOf(String s)
指定された
String の値を保持するLong オブジェクトを返します。 |
static Long |
valueOf(String s, int radix)
2番目の引数で指定された基数を使用した構文解析時に、指定された
String から抽出された値を保持するLong オブジェクトを返します。 |
@Native public static final int SIZE
long
値を表すのに使用されるビット数。public static final int BYTES
long
値を表すために使用されるバイト数。public Long(long value)
long
引数を表す、新しく割り当てられたLong
オブジェクトを構築します。value
- Long
オブジェクトによって表される値。public Long(String s) throws NumberFormatException
String
パラメータで示されるlong
値を表す、新しく割り当てられたLong
オブジェクトを構築します。文字列は、基数10でparseLong
メソッドを使用するのと同じようにlong
値に変換されます。s
- Long
に変換するString
。NumberFormatException
- String
が解析可能なlong
を含まない場合。parseLong(java.lang.String, int)
public static String toString(long i, int radix)
基数がCharacter.MIN_RADIX
よりも小さい場合、あるいはCharacter.MAX_RADIX
よりも大きい場合は、代わりに10
を基数として使います。
1番目の引数が負の数である場合、生成された文字列の1番目の要素はマイナス記号のASCII文字'-'
('\u002d'
)になります。1番目の引数が負の数でない場合、生成された文字列には符号が付きません。
生成された文字列の残りの文字は、1番目の引数の絶対値を表します。絶対値がゼロである場合は、単一のゼロ文字'0'
('\u0030'
)で表されます。それ以外の場合は、絶対値を表す文字の1番目の文字はゼロにはなりません。次のASCII文字を、数字の桁に使います。
0123456789abcdefghijklmnopqrstuvwxyz
これらは'\u0030'
- '\u0039'
および'\u0061'
- '\u007a'
です。radix
がNの場合、これらの文字の先頭からN個が、示した順に基数Nの桁として使用されます。すなわち、16進数(基数は16)に使われる桁の数字は0123456789abcdef
となります。大文字を使いたい場合は、生成された文字列に対してString.toUpperCase()
メソッドを呼び出すことができます。
Long.toString(n, 16).toUpperCase()
i
- 文字列に変換するlong
。radix
- 文字列表現で使用する基数。Character.MAX_RADIX
, Character.MIN_RADIX
public static String toUnsignedString(long i, int radix)
基数がCharacter.MIN_RADIX
よりも小さい場合、あるいはCharacter.MAX_RADIX
よりも大きい場合は、代わりに10
を基数として使います。
第1引数は符号なしの値として扱われるため、先行する符号文字が出力されないことに注意してください。
絶対値がゼロである場合は、単一のゼロ文字'0'
('\u0030'
)で表されます。それ以外の場合は、絶対値を表す文字の1番目の文字はゼロにはなりません。
基数の動作、および数字の桁に使用される文字は、toString
と同じです。
i
- 符号なし文字列に変換される整数。radix
- 文字列表現で使用する基数。toString(long, int)
public static String toHexString(long i)
long
引数の文字列表現を、基数 16の符号なし整数として返します。
符号なしlong
値は、引数が負の数の場合は、引数に264を加算した値になります。それ以外の場合は、引数に等しい値になります。この値は、16進数(基数16)のASCII文字列に変換されます。前に0
は付きません。
引数の値を、返された文字列s
から復元するには、Long.parseUnsignedLong(s, 16)
を呼び出します。
符号なし絶対値がゼロである場合は、単一のゼロ文字'0'
('\u0030'
)で表されます。それ以外の場合は、符号なし絶対値を表す文字の1番目の文字はゼロにはなりません。16進数の桁には、次の文字を使います。
0123456789abcdef
これらは文字'\u0030'
- '\u0039'
および'\u0061'
- '\u0066'
です。大文字を使いたい場合は、生成された文字列に対してString.toUpperCase()
メソッドを呼び出すことができます。
Long.toHexString(n).toUpperCase()
i
- 文字列に変換するlong
。long
値の文字列表現。parseUnsignedLong(String, int)
, toUnsignedString(long, int)
public static String toOctalString(long i)
long
引数の文字列表現を、基数 8の符号なし整数として返します。
符号なしlong
値は、引数が負の数の場合は、引数に264を加算した値になります。それ以外の場合は、引数に等しい値になります。この値は、8進数(基数8)のASCII文字列に変換されます。前に0
は付きません。
引数の値を、返された文字列s
から復元するには、Long.parseUnsignedLong(s, 8)
を呼び出します。
符号なし絶対値がゼロである場合は、単一のゼロ文字'0'
('\u0030'
)で表されます。それ以外の場合は、符号なし絶対値を表す文字の1番目の文字はゼロにはなりません。次のASCII文字を、8進数の桁に使います。
01234567
これらは文字'\u0030'
- '\u0037'
です。i
- 文字列に変換するlong
。long
値の文字列表現。parseUnsignedLong(String, int)
, toUnsignedString(long, int)
public static String toBinaryString(long i)
long
引数の文字列表現を、基数 2の符号なし整数として返します。
符号なしlong
値は、引数が負の数の場合は、引数に264を加算した値になります。それ以外の場合は、引数に等しい値になります。この値は、2進数(基数2)のASCII文字列に変換されます。前に0
は付きません。
引数の値を、返された文字列s
から復元するには、Long.parseUnsignedLong(s, 2)
を呼び出します。
符号なし絶対値がゼロである場合は、単一のゼロ文字'0'
('\u0030'
)で表されます。それ以外の場合は、符号なし絶対値を表す文字の1番目の文字はゼロにはなりません。2進数の桁には、文字'0'
('\u0030'
)および'1'
('\u0031'
)を使います。
i
- 文字列に変換するlong
。long
値の文字列表現。parseUnsignedLong(String, int)
, toUnsignedString(long, int)
public static String toString(long i)
long
を表すString
オブジェクトを返します。引数は、符号付き10進数表現に変換されてから文字列として返されます。これは、引数および基数10をtoString(long, int)
メソッドへの引数として指定した場合とまったく同じです。i
- 変換するlong
。public static String toUnsignedString(long i)
toUnsignedString(long, int)
メソッドへの引数として指定した場合とまったく同じです。i
- 符号なし文字列に変換される整数。toUnsignedString(long, int)
public static long parseLong(String s, int radix) throws NumberFormatException
long
として構文解析します。文字列内の文字はすべて、指定された基数の桁である必要があります(Character.digit(char, int)
から負でない値が返されるかどうかで判定)。ただし先頭の文字だけは、負の値を示すASCIIマイナス記号'-'
('\u002D'
)、正の値を示すASCIIプラス記号'+'
('\u002B'
)のどちらであってもかまいません。結果として得られるlong
値が返されます。
L
('\u004C'
)またはl
('\u006C'
)を型指定子として文字列の末尾に付けることは、Javaプログラミング言語のソース・コードの場合とは違って許されません。ただし、基数が22以上の桁の数字には、L
またはl
が現われます。
以下に挙げる状況のどれかが発生した場合に、NumberFormatException
型の例外がスローされます。
null
であるか、長さゼロの文字列である。
radix
がCharacter.MIN_RADIX
よりも小さいか、Character.MAX_RADIX
よりも大きい。
'-'
('\u002d'
)またはプラス記号'+'
('\u002B'
)であってもかまわない。
long
型の値ではない。
例
parseLong("0", 10) returns 0L parseLong("473", 10) returns 473L parseLong("+42", 10) returns 42L parseLong("-0", 10) returns 0L parseLong("-FF", 16) returns -255L parseLong("1100110", 2) returns 102L parseLong("99", 8) throws a NumberFormatException parseLong("Hazelnut", 10) throws a NumberFormatException parseLong("Hazelnut", 36) returns 1356099454469L
s
- 解析対象のlong
表現を含むString
。radix
- s
の構文解析時に使用する基数。long
値。NumberFormatException
- 文字列が解析可能なlong
を含まない場合。public static long parseLong(String s) throws NumberFormatException
long
として構文解析します。文字列内の文字はすべて、10進数の桁である必要があります。ただし先頭の文字だけは、負の値を示すASCIIマイナス記号'-'
('\u002D'
)、正の値を示すASCIIプラス記号'+'
('\u002B'
)のどちらであってもかまいません。結果となるlong
値が返されます。これは、その引数と基数10
がparseLong(java.lang.String, int)
メソッドに引数として指定された場合とまったく同じです。
L
('\u004C'
)またはl
('\u006C'
)を型指定子として文字列の末尾に付けることは、Javaプログラムのソース・コードの場合とは違って許されません。
s
- 解析対象のlong
表現を含むString
long
。NumberFormatException
- 文字列が解析可能なlong
を含まない場合。public static long parseUnsignedLong(String s, int radix) throws NumberFormatException
long
として構文解析します。符号なし整数は、通常は負の数値に関連付けられた値を、MAX_VALUE
よりも大きい正の数値にマップします。文字列内の文字はすべて、指定された基数の桁である必要があります(Character.digit(char, int)
から負でない値が返されるかどうかで判定)。ただし先頭の文字だけは、ASCIIプラス記号'+'
('\u002B'
)であってもかまいません。結果として得られる整数値を返します。
以下に挙げる状況のどれかが発生した場合に、NumberFormatException
型の例外がスローされます。
null
であるか、長さゼロの文字列である。
Character.MIN_RADIX
よりも小さいか、Character.MAX_RADIX
よりも大きい。
'+'
('\u002B'
)であってもかまわない。
long
(264-1)よりも大きい。
s
- 解析対象の符号なし整数表現を含むString
radix
- s
の構文解析時に使用する基数。long
値。NumberFormatException
- String
が解析可能なlong
を含まない場合。public static long parseUnsignedLong(String s) throws NumberFormatException
long
として構文解析します。文字列内の文字はすべて、10進数の桁である必要があります。ただし先頭の文字だけは、ASCIIプラス記号'+'
('\u002B'
)であってもかまいません。結果となる整数値が返されます。これは、その引数と基数10がparseUnsignedLong(java.lang.String, int)
メソッドに引数として指定された場合とまったく同じです。s
- 解析対象の符号なしlong
表現を含むString
long
値。NumberFormatException
- 文字列が解析可能な符号なし整数を含まない場合。public static Long valueOf(String s, int radix) throws NumberFormatException
String
から抽出された値を保持するLong
オブジェクトを返します。最初の引数は、2番目の引数で指定された基数内の符号付きlong
を表しているとして解釈されます。これは、引数がparseLong(java.lang.String, int)
メソッドに渡された場合とまったく同じです。結果は、文字列により指定されたlong
値を表すLong
オブジェクトになります。
つまり、このメソッドが返すLong
オブジェクトの値は、次の値に等しくなります。
new Long(Long.parseLong(s, radix))
s
- 解析される文字列radix
- 次を解釈するときに使用される基数: s
Long
オブジェクト。NumberFormatException
- String
が解析可能なlong
を含まない場合。public static Long valueOf(String s) throws NumberFormatException
String
の値を保持するLong
オブジェクトを返します。引数は、符号付きの10進数のlong
,を表しているとして解釈されます。これは、その引数がparseLong(java.lang.String)
メソッドに渡された場合とまったく同じです。生成された結果は、文字列により指定された整数値を表すLong
オブジェクトになります。
つまり、このメソッドが返すLong
オブジェクトの値は、次の値に等しくなります。
new Long(Long.parseLong(s))
s
- 解析される文字列。Long
オブジェクト。NumberFormatException
- 文字列をlong
として構文解析できない場合。public static Long valueOf(long l)
long
値を表すLong
インスタンスを返します。新規Long
インスタンスが不要な場合、通常このメソッドがコンストラクタLong(long)
に優先して使用されます。その理由は、このメソッドが頻繁に要求される値をキャッシュするので、操作に必要な領域や時間がはるかに少なくて済む場合が多いためです。このメソッドが、Integer
クラスの対応するメソッドとは異なり、特定範囲内の値をキャッシュする必要がないことに注意してください。l
- long値。l
を表すLong
インスタンス。public static Long decode(String nm) throws NumberFormatException
String
をLong
にデコードします。次の文法の10進数、16進数、および8進数を指定できます。
DecimalNumeral、HexDigits、およびOctalDigitsは、『Java(tm)言語仕様』のセクション3.10.1で規定されているとおりですが、桁間のアンダースコアが受け入れられない点は規定と異なります。
- DecodableString:
- Signopt DecimalNumeral
- Signopt
0x
HexDigits- Signopt
0X
HexDigits- Signopt
#
HexDigits- Signopt
0
OctalDigits- Sign:
-
+
オプションの符号と基数指示子のどちらかまたはその両方に続く文字シーケンス(「0x
」、「0X
」、「#
」、または先頭のゼロ)は、指定された基数(10、16、または8)でLong.parseLong
メソッドを使う場合と同じように構文解析されます。この文字シーケンスは正の数でなければならず、そうでない場合はNumberFormatException
がスローされます。指定されたString
の最初の文字が負の符号である場合、生成された結果は否定されます。String
に空白文字を指定することはできません。
nm
- デコードするString
。nm
により表されるlong
値を保持するLong
オブジェクトNumberFormatException
- String
が解析可能なlong
を含まない場合。parseLong(String, int)
public byte byteValue()
Long
の縮小プリミティブ変換後の値をbyte
として返します。public short shortValue()
Long
の縮小プリミティブ変換後の値をshort
として返します。shortValue
、クラス: Number
short
型に変換した値。public int intValue()
Long
の縮小プリミティブ変換後の値をint
として返します。public long longValue()
Long
の値をlong
値として返します。public float floatValue()
Long
の拡張プリミティブ変換後の値をfloat
として返します。floatValue
、クラス: Number
float
型に変換した値。public double doubleValue()
Long
の拡張プリミティブ変換後の値をdouble
として返します。doubleValue
、クラス: Number
double
型に変換した値。public String toString()
long
の値を表すString
オブジェクトを返します。値は、符号付きの10進数表現に変換され、文字列として返されます。これは、long
値がtoString(long)
メソッドの引数として指定された場合とまったく同じです。public int hashCode()
Long
のハッシュ・コードを返します。生成された結果は、このLong
オブジェクトが保持するプリミティブlong
値の上位32ビットと下位32ビットの排他的論理和です。すなわち、ハッシュ・コードは次の式の値になります。
(int)(this.longValue()^(this.longValue()>>>32))
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public static int hashCode(long value)
Long.hashCode()
との互換性がある、long
値のハッシュ・コードを返します。value
- ハッシュ対象の値long
値のハッシュ・コード値。public boolean equals(Object obj)
true
になるのは、引数がnull
ではなく、このオブジェクトと同じlong
値を含むLong
オブジェクトである場合だけです。equals
、クラス: Object
obj
- 比較対象のオブジェクト。true
、そうでない場合はfalse
。Object.hashCode()
、HashMap
public static Long getLong(String nm)
long
値を判定します。
1番目の引数は、システム・プロパティの名前として扱われます。システム・プロパティにはSystem.getProperty(java.lang.String)
メソッド経由でアクセスできます。次にこのプロパティの文字列値が、decode
によってサポートされている文法を使ってlong
値として解釈され、この値を表すLong
オブジェクトが返されます。
指定された名前を持つプロパティがない場合、指定された名前が空白またはnull
の場合、あるいはプロパティが適切な数値形式でない場合は、null
が返されます。
つまり、このメソッドが返すLong
オブジェクトの値は、次の値に等しくなります。
getLong(nm, null)
nm
- プロパティ名。Long
値。SecurityException
- System.getProperty
と同じ理由のためSystem.getProperty(java.lang.String)
, System.getProperty(java.lang.String, java.lang.String)
public static Long getLong(String nm, long val)
long
値を判定します。
1番目の引数は、システム・プロパティの名前として扱われます。システム・プロパティにはSystem.getProperty(java.lang.String)
メソッド経由でアクセスできます。次にこのプロパティの文字列値が、decode
によってサポートされている文法を使ってlong
値として解釈され、この値を表すLong
オブジェクトが返されます。
2番目の引数はデフォルトの値です。指定された名前のプロパティがない場合、該当するプロパティが適切な数値形式でない場合、あるいは指定した名前が空白またはnullの場合は、Long
オブジェクトが示す2番目の引数が返されます。
つまり、このメソッドが返すLong
オブジェクトの値は、次の値に等しくなります。
getLong(nm, new Long(val))
しかし実際には、次のように実装されます。
この実装により、デフォルトの値が不要な場合に、Long result = getLong(nm, null); return (result == null) ? new Long(val) : result;
Long
オブジェクトの余計な割り当てを避けることができます。nm
- プロパティ名。val
- デフォルト値。Long
値。SecurityException
- System.getProperty
と同じ理由のためSystem.getProperty(java.lang.String)
, System.getProperty(java.lang.String, java.lang.String)
public static Long getLong(String nm, Long val)
long
値を返します。1番目の引数は、システム・プロパティの名前として扱われます。システム・プロパティにはSystem.getProperty(java.lang.String)
メソッド経由でアクセスできます。次にこのプロパティの文字列値がdecode
メソッドのとおりにlong
値として解釈され、この値を表すLong
オブジェクトが返されます。要するに次のようになります。
0x
またはASCII文字#
で始まり、その後にマイナス符号がない場合は、値の残りはメソッドvalueOf(java.lang.String, int)
を基数16で使う場合とまったく同じように16進整数として解析される。
0
で始まり、それに別の文字が続く場合、値はvalueOf(java.lang.String, int)
メソッドを基数8で使う場合とまったく同じように8進整数として解析される。
valueOf(java.lang.String, int)
メソッドを基数10で使う場合とまったく同じように10進整数として構文解析される。
以上のどの場合でも、型指定子としてL
('\u004C'
)またはl
('\u006C'
)をプロパティ値の末尾に付けることは、Javaプログラミング言語のソース・コードの場合とは異なり許可されません。
2番目の引数はデフォルトの値です。指定された名前のプロパティがない場合、該当するプロパティが適切な数値形式でない場合、あるいは指定した名前が空白またはnull
の場合は、デフォルト値が返されます。
nm
- プロパティ名。val
- デフォルト値。Long
値。SecurityException
- System.getProperty
と同じ理由のためSystem.getProperty(java.lang.String)
, System.getProperty(java.lang.String, java.lang.String)
public int compareTo(Long anotherLong)
Long
オブジェクトを数値的に比較します。compareTo
、インタフェース: Comparable<Long>
anotherLong
- 比較対象のLong
。Long
が引数Long
と等しい場合は値0
、このLong
が引数Long
より小さい数値の場合は0
より小さい値、このLong
が引数Long
より大きい数値の場合は0
より大きい値(符号付きの比較)。public static int compare(long x, long y)
long
値を数値的に比較します。返される値は、次から返される値と同じになります。
Long.valueOf(x).compareTo(Long.valueOf(y))
x
- 比較する最初のlong
y
- 比較する2番目のlong
x == y
の場合は値0
、x < y
の場合は0
より小さい値、x> y
の場合は0
より大きい値public static int compareUnsigned(long x, long y)
long
値を符号なしとして処理して数値的に比較します。x
- 比較する最初のlong
y
- 比較する2番目のlong
x == y
の場合は値0
、符号なしの値としてx < y
の場合は0
より小さい値、符号なしの値としてx> y
の場合は0
より大きい値public static long divideUnsigned(long dividend, long divisor)
2の補数計算で、他の3つの基本算術演算(加算、減算、および乗算)は、2つのオペランドがどちらも符号付き、またはどちらも符号なしと見なされる場合、ビット単位で同じであることに注意してください。したがって、個々のaddUnsigned
などのメソッドは提供されません。
dividend
- 割られる値divisor
- 割る値remainderUnsigned(long, long)
public static long remainderUnsigned(long dividend, long divisor)
dividend
- 割られる値divisor
- 割る値divideUnsigned(long, long)
public static long highestOneBit(long i)
long
値の最上位(「もっとも左側」)の1のビットの位置に最大で1つの1のビットを持つlong
値を返します。指定された値が2の補数バイナリ表現の1のビットを持たない場合、つまりゼロに等しい場合はゼロを返します。i
- 最上位の1のビットが計算される値long
値。指定された値がゼロに等しい場合はゼロ。public static long lowestOneBit(long i)
long
値の最下位(「もっとも右側」)の1のビットの位置に最大で1つの1のビットを持つlong
値を返します。指定された値が2の補数バイナリ表現の1のビットを持たない場合、つまりゼロに等しい場合はゼロを返します。i
- 最下位の1のビットが計算される値long
値。指定された値がゼロに等しい場合はゼロ。public static int numberOfLeadingZeros(long i)
long
値の2の補数バイナリ表現の最上位(「もっとも左側」)の1のビットに先行するゼロのビットの数を返します。指定された値が2の補数表現の1のビットを持たない場合、つまりゼロに等しい場合は64を返します。
このメソッドは、2を底とする対数に密接に関係しています。すべての正のlong
値xの場合、
63 - numberOfLeadingZeros(x)
64 - numberOfLeadingZeros(x - 1)
i
- 先行するゼロの数が計算される値long
値の2の補数バイナリ表現で最上位(「もっとも左側」)の1のビットに先行するゼロのビットの数。指定された値がゼロに等しい場合は64。public static int numberOfTrailingZeros(long i)
long
値の2の補数バイナリ表現で最下位(「もっとも右側」)の1ビットに続くゼロのビットの数を返します。指定された値が2の補数表現の1のビットを持たない場合、つまりゼロに等しい場合は64を返します。i
- 末尾のゼロの数が計算される値long
値の2の補数バイナリ表現で最下位(「もっとも右側」)の1ビットに続くゼロのビットの数。指定された値がゼロに等しい場合は64。public static int bitCount(long i)
long
値の2の補数バイナリ表現での、1のビットの数を返します。この関数は、ポピュレーション・カウントと呼ばれる場合があります。i
- ビットがカウントされる値long
値の2の補数バイナリ表現での、1のビットの数。public static long rotateLeft(long i, int distance)
long
値の2の補数バイナリ表現を指定したビット数だけ左に回転して取得された値を返します。ビットは、左側つまり上位にシフトされ、右側つまり下位に入ります。
負の距離による左回転は、右回転と等価です(rotateLeft(val, -distance) == rotateRight(val, distance)
)。また、64の倍数による回転は何も行わないため、回転距離の最後の6ビット以外は、距離が負の場合でもすべて無視できることに注意してください(rotateLeft(val, distance) == rotateLeft(val, distance & 0x3F)
)。
i
- ビットが左に回転される値distance
- 左に回転するビット位置の数long
値の2の補数バイナリ表現を指定されたビット数だけ左に回転して取得した値。public static long rotateRight(long i, int distance)
long
値の2の補数バイナリ表現を指定したビット数だけ右に回転して取得された値を返します。ビットは、右側つまり下位にシフトされ、左側つまり上位に入ります。
負の距離による右回転は、左回転と等価です(rotateRight(val, -distance) == rotateLeft(val, distance)
)。また、64の倍数による回転は何も行わないため、回転距離の最後の6ビット以外は、距離が負の場合でもすべて無視できることに注意してください(rotateRight(val, distance) == rotateRight(val, distance & 0x3F)
)。
i
- ビットが右に回転される値distance
- 右に回転するビット位置の数long
値の2の補数バイナリ表現を指定されたビット数だけ右に回転して取得された値。public static long reverse(long i)
long
値の2の補数バイナリ表現でビットの順序を逆にして取得された値を返します。i
- 逆にされる値long
値でバイト順を逆にして取得された値。public static int signum(long i)
long
値の符号要素を返します。(指定した値が負の場合、戻り値は -1。指定された値がゼロの場合は0。指定した値が正の場合は1)。i
- 符号要素が計算される値long
値の符号要素。public static long reverseBytes(long i)
long
値の2の補数バイナリ表現でバイトの順序を逆にして取得された値を返します。i
- バイトが逆にされる値long
値のバイト順を逆にして取得された値。public static long sum(long a, long b)
long
値を加算します。a
- 第1オペランドb
- 第2オペランドa
とb
の合計BinaryOperator
public static long max(long a, long b)
Math.max
を呼び出した場合と同様に、2つのlong
値の大きいほうを返します。a
- 第1オペランドb
- 第2オペランドa
とb
のどちらか大きい方BinaryOperator
public static long min(long a, long b)
Math.min
を呼び出した場合と同様に、2つのlong
値の小さいほうを返します。a
- 第1オペランドb
- 第2オペランドa
とb
のどちらか小さい方BinaryOperator
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.