Java学习笔记之基础应用(2015.3.21)

最近打算好好学习下Java,所以打算记录下一些知识点或者是值得记住需要记住的代码吧!

1.灵活使用位运算实现加密算法
可以使用“^”异或运算符把字符串与一个特定值进行异或运算,这样就可以得到一个加密后的字符串,这就是一个简单的加密算法。
简单的例子如下:

import java.util.Scanner;

public class TestCode {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入一个英文字符串或解密字符串");
        String password = in.nextLine(); // 获取用户输入
        char[] array = password.toCharArray(); // 获取字符数组
        int length = array.length;
        for (int i = 0; i < length; i++) { // 遍历字符数组
            array[i] = (char) (array[i] ^ 20000); // 对每个数组元素进行异或运算
        }
        System.out.println("加密或解密结果如下 ");
        System.out.println(new String(array)); // 输出结果
        in.close();
    }

}

执行的结果如下:
Java学习笔记之基础应用(2015.3.21)_第1张图片

2.对于位移运算,左移n位表示乘以2的n次方,而右移n位等于除以2的n次方。

简单的代码示例:

import java.util.Scanner;

public class TestCode {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int number = in.nextInt(); // 获取用户输入

        System.out.println("你输入的数字是: " + number);
        System.out.println("该数字乘以2的结果为:" + (number << 1));
        System.out.println("该数字乘以4的结果为:" + (number << 2));
        System.out.println("该数字除以2的结果为:" + (number >> 1));
        System.out.println("该数字除以4的结果为:" + (number >> 2));
        in.close();
    }

结果为:
Java学习笔记之基础应用(2015.3.21)_第2张图片

3.利用异或运算实现两个变量的互换
这也是异或运算的应用之一,可以省略临时变量,达到互换两个变量的效果。

代码如下:

import java.util.Scanner;

public class TestCode {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入变量A的值");
        int A = in.nextInt(); 
        System.out.println("请输入变量B的值");
        int B = in.nextInt();
        System.out.println("A = " + A + "\tB = " + B);
        System.out.println("执行变量互换...");
        A = A ^ B;
        B = B ^ A;
        A = A ^ B;
        System.out.println("A = " + A + "\tB = " + B);
        in.close();
    }

}

运行结果为:

异或及其他运算符都不会改变变量本身的值,即“A^B”是没有意义的,必须要有赋值才行。

不过这个方法应该是转换两个同类型的变量,如果是不同类型的变量还是使用临时变量会方便简单点。

你可能感兴趣的:(java,运算符)