0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java Silver確実合格を目指すカレンダーAdvent Calendar 2024

Day 6

【Java】2進数・8進数・16進数・ビット演算子

Last updated at Posted at 2024-12-05

初めに

Java silverではint型やbyte型の問題で2進数・8進数・16進数が出題されることがある。表記法も独特なので、今回はそれらを取り上げていく。なお、10進数から各値への変換は今回は解説しない。

2進数

0bまたは0Bを先頭につける。


0b100001011

8進数

0を先頭につける。


0222

なお,0827はコンパイルエラーになる。これは8進数の時に使える数字は0~7のためである。

16進数

0xまたは0Xを先頭につける。また16進数では桁ごとに 0 から 9 の数字と A(10)、B(11)、C(12)、D(13)、E(14)、F(15)を使う。


0x10B

ビット演算子とは

整数型の数値に対してビット単位で演算を行うための演算子。ビットとは2進数で表現される数値の値(0または1)のこと。主な演算子つぃて&,|,^が存在する。

&の使い方

2つの対応するビット値を比較し、両方のビットが1なら結果のビットは1。対象のビットが片方または両方とも0なら結果も0。

Java(Main.java)
System.out.println(15 & 20);

結果

4

|の使い方

両方または片方のビットが1なら1。ともに0なら0が返される。

Java(Main.java)
System.out.println(25 | 17);

^の使い方

両方のビットが異なれば1。

Java(Main.java)
System.out.println(11 | 19);

結果

27

char型で使用する場合

char型はint型と互換性があるので、同様にビット演算子を使用できる。

Java(Main.java)
System.out.println('c'| 'd');

このままだと難しいので一旦int型に直してみる。

Java(Main.java)
System.out.println((int)'c');
System.out.println((int)'d');

結果

99
100

ここまで来れば同じように計算していけば良い。'c'|'d'の結果は以下のようになる。

結果

103

まとめ

  • 2進数は先頭に0bまたは0Bをつける
  • 8進数は先頭に0をつける
  • 16進数は先頭に0xまたは0Xをつける
  • &は両方のビットが1なら1、片方または両方とも0なら0を指定
  • |は両方または片方のビットが1なら1、両方とも0なら0を指定
  • ^は両方のビットが異なれば1を指定
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?