web-dev-qa-db-ja.com

Javaにバイナリリテラルはありますか?

整数を2進リテラルで宣言したい。 Javaで可能ですか?

28
Conscious

Java 7で始まり、整数を直接表すことができます2進数として0b(または0B)の後に1またはより多くの2進数(0または1)。たとえば、0b101010は整数42です。8進数や16進数と同様に、2進数は負の数を表す場合があります。

Java 7がない場合は、次を使用してください。

int val = Integer.parseInt("001101", 2);

整数を入力する他の方法があります:

  1. 199551966などの10進数として。 -42などの負の10進数は、実際には、単項否定演算を使用した整数リテラルで構成される式です。

  2. 8進数として、先頭の0(ゼロ)桁と1つ以上の追加の8進数(0〜7の数字)(077など)を使用します。8進数は負の数に評価される場合があります。たとえば、037777777770は実際には10進値-8です。

  3. 16進数として、0x(または0X)の後に1つ以上の16進数(0から9、aからf、またはAからF)を使用します。たとえば、0xCAFEBABELは長整数3405691582です。8進数と同様に、16進リテラルは負の数を表す場合があります。

詳細については、 このウィキブックス を参照してください。

36
Bobs

JDK 7では、次のことが可能です。

int binaryInt = 0b101;

番号の前に0bを付けるだけです。

37
Petar Minchev