最近打算好好学习下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();}}
执行的结果如下:
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();}
结果为:
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”是没有意义的,必须要有赋值才行。
不过这个方法应该是转换两个同类型的变量,如果是不同类型的变量还是使用临时变量会方便简单点。