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();
    }

}

执行的结果如下:
这里写图片描述

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”是没有意义的,必须要有赋值才行。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spearhead_cai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值