当前位置: 首页 > article >正文

Java零基础入门-位运算符

前言

Java是一种十分流行的编程语言,如今已成为网站和应用程序的主要编程语言之一。如果您想成为一名Java程序员,那么您需要掌握Java的各种技术和概念。在本文中,我们将着重介绍Java中的位运算符,为您提供清晰明了的指导,以帮助您开始编写Java程序。

摘要

本文将详细介绍Java中的位运算符及其用法。我们将学习位运算符的不同类型,例如AND、OR、XOR和NOT,并解释它们在Java中的用法。此外,我们还将介绍Java中的位移运算符,并给出示例代码和解释。最后,我们将通过测试用例来展示位运算符的功能。

内容

位运算符

在Java中,位运算符是一种计算机程序中使用的特殊操作符。位运算符将二进制位视为单独的数字,并在二进制位之间执行逻辑操作。Java中共有6个位运算符,它们是:

  • 按位与(&)
  • 按位或(|)
  • 按位异或(^)
  • 按位非(~)
  • 左移(<<)
  • 右移(>>)

接下来将逐一解释这些位运算符的用法和示例代码。

按位与(&)

按位与操作符(&)对操作数的每个二进制位执行逻辑AND操作。如果两个相应的二进制位都为1,则该位的结果为1,否则为0。例如:

int a = 7 & 3;
// a = 3, 即二进制 011 & 二进制 010 = 二进制 010,转成十进制就是 3
按位或(|)

按位或操作符(|)对操作数的每个二进制位执行逻辑OR操作。如果两个相应的二进制位中至少有一个1,则该位的结果为1,否则为0。例如:

int b = 7 | 3;
// b = 7, 即二进制 111 | 二进制 011 = 二进制 111,转成十进制就是 7
按位异或(^)

按位异或运算符(^)对操作数的每个二进制位执行逻辑XOR操作。如果两个相应的二进制位一个是1而另一个是0,则该位的结果为1,否则为0。例如:

int c = 7 ^ 3;
// c = 4, 即二进制 011 ^ 二进制 010 = 二进制 0010,转成十进制就是 4
按位非(~)

按位非(~)运算符对操作数的每个二进制位执行逻辑NOT操作。如果位为0,则结果为1,反之亦然。例如:

int d = ~7;
// d = -8,即二进制 1000,转成十进制就是 -8
左移(<<)

左移运算符(<<)将操作数的二进制位向左移动指定数量的位。左移操作相当于将二进制数乘以2的n次幂(其中n是移动的位数)。例如:

int e = 7 << 2;
// e = 28,即二进制 111 << 2 = 二进制 11100,转成十进制就是 28
右移(>>)

右移运算符(>>)将操作数的二进制位向右移动指定数量的位。右移操作相当于将二进制数除以2的n次幂(其中n是移动的位数)。例如:

int f = 7 >> 2;
// f = 1,即二进制 111 >> 2 = 二进制 001,转成十进制就是 1

代码方法介绍

下面是一些示例代码,说明如何在Java中使用位运算符。

public class BitwiseOperators {
    public static void main(String []args) {
        int a = 5, b = 10;
        int c = a & b;
        int d = a | b;
        int e = a ^ b;
        int f = ~a;
        int g = b << 2;
        int h = b >> 2;

        System.out.println("c = " + c);
        System.out.println("d = " + d);
        System.out.println("e = " + e);
        System.out.println("f = " + f);
        System.out.println("g = " + g);
        System.out.println("h = " + h);
    }
}

在上面的示例代码中,我们首先定义了两个整数变量a和b,然后使用不同的运算符计算了一些变量的值。最后,我们使用System.out.println()方法将这些变量的值打印到控制台上。

测试用例

为了更好地展示位运算符的功能,我们编写了以下测试用例:

public class BitwiseOperatorsTest {
    @Test
    public void testAndOperator() {
        int a = 5, b = 10;
        int c = a & b;
        assertEquals(0, c);
    }

    @Test
    public void testOrOperator() {
        int a = 5, b = 10;
        int c = a | b;
        assertEquals(15, c);
    }

    @Test
    public void testXorOperator() {
        int a = 5, b = 10;
        int c = a ^ b;
        assertEquals(15, c);
    }

    @Test
    public void testNotOperator() {
        int a = 5;
        int b = ~a;
        assertEquals(-6, b);
    }

    @Test
    public void testLeftShiftOperator() {
        int a = 5;
        int b = a << 2;
        assertEquals(20, b);
    }

    @Test
    public void testRightShiftOperator() {
        int a = 10;
        int b = a >> 2;
        assertEquals(2, b);
    }
}

在这些测试用例中,我们使用JUnit框架编写了一些单元测试,以验证不同位运算符的功能是否正常。

小结

在本文中,我们简要介绍了Java的位运算符,包括按位与、按位或、按位异或、按位非、左移和右移。我们还提供了一些示例代码和测试用例,以帮助您更好地理解Java中的位运算符。希望本文对您有所帮助!

总结

本文详细介绍了Java中的位运算符及其用法。我们解释了位运算符的不同类型,例如AND、OR、XOR和NOT,并介绍了Java中的位移运算符。我们还提供了示例代码和测试用例,以帮助您更好地理解Java中的位运算符。


http://www.kler.cn/a/108111.html

相关文章:

  • PHP实现身份证OCR识别API接口
  • Spring Boot 的核心原理和工作机制
  • vue3的自定义hooks怎么写?
  • CSS3_3D变换(七)
  • Scala的Map集合
  • 智谱AI:ChatGLM强大的生成式语言模型
  • How to install mongodb-7.0 as systemd service with podman
  • JVM面试知识点整理
  • PG数据库基本使用
  • 从Mysql架构看一条查询sql的执行过程
  • use renv with this project create a git repository
  • 分类预测 | MATLAB实现SSA-CNN-BiGRU麻雀算法优化卷积双向门控循环单元数据分类预测
  • 【软件安装环境配置】vscode 安装界面没有出现安装路径的选择 的解决,以及vscode的删除的问题
  • 【算法|动态规划No.32 | 完全背包问题】完全背包模板题
  • DAY05 循环嵌套+函数的笔记整理
  • 前端 : 用HTML ,CSS ,JS 做一个点名器
  • 【知识串联】概率论中的值和量(随机变量/数字特征/参数估计)【考研向】【按概率论学习章节总结】(最大似然估计量和最大似然估计值的区别)
  • C++之左值、右值、std::forward、std::move总结(二百五十)
  • 多线程---wait和notify
  • 闭包和函数柯里化的理解
  • 测开 (Junit 单元测试框架)
  • 【C++】模版进阶
  • UE4/UE5 设置widget中text的字体Outline
  • docker 中给命令起别名
  • pytorch 笔记:index_select
  • Java面试八股文之暑假合集