【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");
        }

    }
}

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