【Java】【基礎篇】day02:操作符與條件選擇語句

前言

本期任務:畢向東老師Java視頻教程學習筆記(共計25天)


一、進制轉換

/*
需求:將十進制轉換成十六進制、八進制、二進制

思路;以十六進制爲例
    1:利用與運算取最低4位
    2:利用右移運算捨去4位
    3:八進制每次操作3位,二進制每次操作1位

步驟:以十六進制爲例
    1. 初始化一個整數(十進制)
    2. 利用與運算取最低4位
    3. 最低4位轉換成0-9,A-F
    4. 利用右移運算捨去4位

*/

public class HexConversion {
    public static void main(String[] args) {
        int num = 60;
        System.out.print(num + " = ");

        // 轉換成十六進制
//        int temp = num & 15;
//        temp = (temp <= 9) ? (temp - 0 + '0') : (temp - 10 + 'A');
//        char n2 = (char)temp;
//
//        num >>>= 4;
//        temp = num & 15;
//        temp = (temp <= 9) ? (temp - 0 + '0') : (temp - 10 + 'A');
//        char n1 = (char)temp;
//
//        System.out.println("0x" + n1 + n2);

        // 轉換成八進制
//        int temp = num & 7;
//        char n2 = (char)(temp - 0 + '0');
//
//        num >>>= 3;
//
//        temp = num & 7;
//        char n1 = (char)(temp - 0 + '0');
//
//        System.out.println("0" + n1 + n2);

        // 轉換成二進制
        // 效果同:System.out.println(Integer.toBinaryString(num));
        char n6 = (char) ((num & 1) - 0 + '0');
        num >>>= 1;
        char n5 = (char) ((num & 1) - 0 + '0');
        num >>>= 1;
        char n4 = (char) ((num & 1) - 0 + '0');
        num >>>= 1;
        char n3 = (char) ((num & 1) - 0 + '0');
        num >>>= 1;
        char n2 = (char) ((num & 1) - 0 + '0');
        num >>>= 1;
        char n1 = (char) ((num & 1) - 0 + '0');

        System.out.println("" + n1 + n2 + n3 + n4 + n5 + n6);
    }
}
    

二、交換兩個整數的值

/*
需求:交換兩個整數的值

思路;
    1:藉助第三個變量
    2:利用加減法
    3:利用異或運算

步驟:
    1. 實現思路1
    2. 實現思路2
    3. 實現思路3

*/

public class IntegerSwap {
    public static void main(String[] args) {
        int m = 3;
        int n = 4;
        System.out.println("m = " + m + ", n = " + n);

//        1:藉助第三個變量
//        int temp;
//        temp = m;
//        m = n;
//        n = temp;
//        System.out.println("m = " + m + ", n = " + n);

//        2:利用加減法
//        m = m + n;
//        n = m - n; // n = (m + n) - n
//        m = m - n; // m = (m + n) - m
//        System.out.println("m = " + m + ", n = " + n);

//        3:利用異或運算
        m = m ^ n;
        n = m ^ n;// n = (m ^ n) ^ n
        m = m ^ n;// m = (m ^ n) ^ m
        System.out.println("m = " + m + ", n = " + n);
    }
}
    

三、對一個整數乘除2的整數倍

/*
需求:對一個整數乘除2的整數倍
思路:
    左移一位,相當於乘以2
    右移一位,相當於除以2
步驟:
    初始化一個整數
    左移2位,作爲乘以4的結果
    右移2位,作爲除以4的結果
*/


package com.lanyu;

public class BitOperation {

    public static void main(String[] args) {
        int num = 30;
        System.out.println(num << 2);
        System.out.println(num >> 2);
        System.out.println(num >>> 2);
    }
}

四、給定月份,輸出對應季節

/*
需求:給定月份,輸出對應季節

思路;
    1:多個if語句
    2:switch-case

步驟:
    1. 實現思路1(分區間段)
    2. 實現思路2(分13種情況)

*/

public class MonthSeason {
    public static void main(String[] args) {
//        int month = 2;
        int month = 13;

//        1. if(分區間段)
        if (month >= 3 && month <= 5)
            System.out.println(month + " Spring");
        else if (month >= 6 && month <= 8)
            System.out.println(month + " Summer");
        else if (month >= 9 && month <= 11)
            System.out.println(month + " Autumn");
        else if (month == 12 || month >= 1 && month <= 2)
            System.out.println(month + " Winter");
        else
            System.out.println(month + " Wrong Month");

//        2. switch-case(分13種情況)
        switch (month) {
            case 3:
            case 4:
            case 5:
                System.out.println(month + " Spring");
                break;

            case 6:
            case 7:
            case 8:
                System.out.println(month + " Summer");
                break;

            case 9:
            case 10:
            case 11:
                System.out.println(month + " Autumn");
                break;

            case 12:
            case 1:
            case 2:
                System.out.println(month + " Winter");
                break;

            default:
                System.out.println(month + " Wrong Month");
        }

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章