Java中二进制位运算

本题目要求读入2个整数和一个字符,然后根据这个字符值,对两个整数进行相应的二进制位的运算。要求必须使用switch选择结构

(1)如果字符是&,则两个整数进行二进制位的与运算

(2)如果字符是 |,则两个整数进行二进制位的或运算

(3)如果字符是^,则两个整数进行二进制位异或运算

(4)如果是其他字符,则固定输出信息:ERROR

输入格式:

在一行中依次输入整数1,字符,整数2。

输出格式:

类似3 & 4 = 0

其中,运算符号&的前后都有一个空格,等号的前后也都有一个空格。 上面表示3和4做二进制的与运算,结果是0。

输入样例:

3的二进制是0011,4的二进制是0100,二者与运算的结果是0。

3 & 4

输出样例:

注意&和=的前后,都是有且仅有一个空格。

3 & 4 = 0

输入样例:

7 X 3

输出样例:

ERROR


答案

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        String [] arr = str.split("\\s+");
        int num1 = Integer.parseInt(arr[0]);
        int num2 = Integer.parseInt(arr[2]);
        switch (arr[1]){
            case "&":
                System.out.println(num1 + " & " + num2 + " = " + (num1&num2));
                break;
            case "|":
                System.out.println(num1 + " | " + num2 + " = " + (num1|num2));
                break;
            case "^":
                System.out.println(num1 + " ^ " + num2 + " = " + (num1^num2));
                break;
            default:
                System.out.println("ERROR");
                break;
        }

    }
}
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 计算二进制的减法,需要借位才能得出正确结果。例如,当减去2的二进制数110时,可以先将减数变为其补码,即0010,然后再将被减数和减数进行加法运算,得到1101。最后将得到的结果转换为十进制格式即可,即13。因此,答案为13。 ### 回答2: Java二进制运算是通过位运算符来实现的。Java的位运算符包括位与(&)、位或(|)、位异或(^)、取反(~)、左移(<<)和右移(>>)。 位与运算符(&)是指将两个操作数的每个二进制位进行“与”运算,只有当两个二进制位都为1时,结果为1。例如:1101 & 1011 = 1001。 位或运算符(|)是指将两个操作数的每个二进制位进行“或”运算,只要两个二进制位有一个为1,结果为1。例如:1101 | 1011 = 1111。 位异或运算符(^)是指将两个操作数的每个二进制位进行“异或”运算,也就是只有两个二进制位不相同时,结果为1。例如:1101 ^ 1011 = 0110。 取反运算符(~)是指将操作数的每个二进制位取反,也就是1变成0,0变成1。例如:~1101 = 0010。 左移运算符(<<)是指将操作数的每个二进制位向左移动指定的位数,左边超出部分被丢弃,右边空出来的部分用0填充。例如:1011 << 2 = 110100。 右移运算符(>>)是指将操作数的每个二进制位向右移动指定的位数,右边超出部分被丢弃,左边空出来的部分用原来的最高位填充。例如:1101 >> 2 = 0011。 Java二进制运算可以用于位掩码、数据压缩和加密解密等方面。在实际编程,需根据实际需求选择合适的位运算符进行操作。需要注意的是,Java的位运算符优先级比较低,要加括号使其优先级变高。 ### 回答3: Java二进制运算是指通过位级别上的操作来处理二进制数的运算Java支持六种位运算操作符:与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)以及无符号右移(>>>)。 &(与运算符):当两个二进制数的同一位都为1时,结果为1;否则为0。 |(或运算符):当两个二进制数的同一位都为0时,结果为0,否则为1。 ^(异或运算符):当两个二进制数的同一位值不同时,结果为1,否则为0。 ~(取反运算符):将二进制数的每一位取反,即0变为1,1变为0。 <<(左移运算符):将二进制数向左移动指定的位数,左移后右边会补0,左边的最高位被抛弃。 >>(右移运算符):将二进制数向右移动指定的位数,右移后左边会补上原最高位的值(有符号右移),即如果最高位是1,右移后左边会补1;如果最高位是0,右移后左边会补0。 >>>(无符号右移运算符):无论最高位是0还是1,都将其替换为0,然后进行右移操作。 二进制运算在实际应用用途广泛,比如位运算可以用来压缩数据,以达到节省空间的目的。另外,位运算还可以用来进行加密和解密等处理。 总的来说,掌握Java二进制运算对于程序员来说是非常重要的,可以帮助开发高效的代码和优化性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值