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