LoginSignup
0
0

JavaSilverの試験で多分問われない演算子の話②

Last updated at Posted at 2023-11-14

はじめに

前回の記事

に続き本記事では「&,|,^」といったビット演算子、三項演算子「?:」について紹介します。

ビット演算子「&」「|」「^」

①「&」

論理積(AND) を取ります。
a=1100、b=0101の場合下記の図のように、
論理積なのでab両方1の桁は1に。
それ以外の桁は、両方0もしくは片方が0なので0になります。

4桁目 3桁目 2桁目 1桁目
a 1 1 0 0
b 0 1 0 1
a & b 0 1 0 0

こちらを実際のプログラムで見てみましょう。

And1.java
public class And1
{
    public static void main( String[] args )
    {
		int a = 12; // 2進数 : 1100
		int b = 5; // 2進数 : 0101

		System.out.println("a & b :" + String.format("%4s", Integer.toBinaryString(a & b)).replace(" ", "0"));

}
実行結果
a & b :0100

②「|」

論理和(or) を取ります。
a=1100、b=0101の場合下記の図のように、
論理和なのでab両方1の桁はもちろん、片方が1の桁も1になります。
両方0の桁は0になります。

4桁目 3桁目 2桁目 1桁目
a 1 1 0 0
b 0 1 0 1
a | b 1 1 0 1

こちらを実際のプログラムで見てみましょう。

Or1.java
public class Or1
{
    public static void main( String[] args )
    {
		int a = 12; // 2進数 : 1100
		int b = 5; // 2進数 : 0101

		System.out.println("a | b :" + String.format("%4s", Integer.toBinaryString(a | b)).replace(" ", "0"));

}
実行結果
a | b :1101

③「^」

排他的論理和(xor) を取ります。
a=1100、b=0101の場合下記の図のように、
排他的論理和なので片方が1の桁は1になります。
ab両方1の桁、両方0の桁は0になります。

4桁目 3桁目 2桁目 1桁目
a 1 1 0 0
b 0 1 0 1
a ^ b 1 0 0 1

こちらを実際のプログラムで見てみましょう。

Xor1.java
public class Xor1
{
    public static void main( String[] args )
    {
		int a = 12; // 2進数 : 1100
		int b = 5; // 2進数 : 0101

		System.out.println("a ^ b :" + String.format("%4s", Integer.toBinaryString(a ^ b)).replace(" ", "0"));

}
実行結果
a ^ b :1001

三項演算子「?:」

条件式の真偽に応じてそれぞれ異なる値を返す演算子です。

下記の書式で記述します。

条件式 ? 値1 : 値2

条件式がtrueの場合は値1が、falseの場合は値2が返されます。

実際の例でみていきましょう。

scoreが60より大きい場合、「合格」と表示され、
そうでない場合「不合格」と表示されます。

今回scoreは76なので、コンソールには「合格」と表示されます。

ternary.java
import java.util.*;

public class ternary {
    public static void main(String[] args) throws Exception {

        int score = 76;
        
        String result = score > 60 ? "合格" : "不合格";
        
        System.out.println(result);
    }
}
実行結果
合格

読んでいただきありがとうございます。
次回③では「&=,|=,^=,<<=,>>=,>>>=」といった代入演算子について紹介します。(執筆中)

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