`
zxlj2ee
  • 浏览: 35568 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java中的位运算符

    博客分类:
  • java
阅读更多
 二进制运算符
  由于计算机内部的数据都以二进制的形式存在,所以在Java语言中提供了直接操作二进制的运算符,这就是下面要讲解的位运算符和移位运算符。
  使用二进制的运算符,可以直接在二进制的基础上对数字进行操作,执行的效率比一般的数学运算符高的多,该类运算符大量适用于网络编程、硬件编程等领域。
  二进制运算符在数学上的意义比较有限。
  在Java代码中,直接书写和输出的数值默认是十进制,Java代码中无法直接书写二进制数值,但是可以书写八进制和十六进制数字,八进制以数字0开头,例如016,十六进制以数字0和x开头,例如0x12,0xaf等等。
  在计算二进制运算时,Java语言的执行环境(JRE)首先将十进制的数字转换为二进制,然后进行运算。如果输出结果的值,则数字会被转换成十六进制进行输出。
  需要注意的是:
  1、正数的机器数是原码,负数的机器数是补码,计算时需要小心。关于二进制和补码的计算可以参看《Java编程那些事儿7——进制的概念》和《Java编程那些事儿8——计算机内部的数据表达》。
  2、整数型的计算结果都是int型,而不管是对byte还是short进行二进制运算。
  位运算符
  Java语言中的位运算符主要有4种:&(位与)、|(位或)、^(异或)和~(按位取反),下面依次介绍运算规则和使用示例。
  l &(AND)
  运算规则:参与运算的数字,低位对齐,高位不足的补零,对应的二进制位都为1,则运算结果为1,否则为0.适用场合:屏蔽数字中某一位或某些位。因为任何数和0与都是0.示例代码:
  int a = 4;
  int b = 10;
  int c = a & b;
  计算过程:
  4的二进制形式为0000 0000 0000 0000 0000 0000 0000 0100
  10的二进制形式为0000 0000 0000 0000 0000 0000 0000 1010
  按照计算规则,结果为0000 0000 0000 0000 0000 0000 0000 0000
  这个数字转换为十进制就是数字0 l | (OR)
  运算规则:参与运算的数字,低位对齐,高位不足的补零,对应的二进制位有一个为1则为1,否则为0.适用场合:将数字中某一位或某些位修改成1.因为1和任何数或都是1.示例代码:
  int a = 4;
  int b = -10;
  int c = a | b;
  计算过程:
  4的二进制形式为0000 0000 0000 0000 0000 0000 0000 0100
  10的二进制形式为1111 1111 1111 1111 1111 1111 1111 0110
  Examda提示: 按照计算规则,结果为1111 1111 1111 1111 1111 1111 1111 0110
  这个二进制数转换为十进制就是数字-10. l ^(XOR)
  运算规则:参与运算的数字,低位对齐,高位不足的补零,对应的二进制位相同为零,不相同为1.适用场合:判断数字对应的位是否相同。
  示例代码:
  int a = 4;
  int b = 10;
  int c = a ^ b;
  计算过程:
  4的二进制形式为0000 0000 0000 0000 0000 0000 0000 0100
  10的二进制形式为0000 0000 0000 0000 0000 0000 0000 1010
  按照计算规则,结果为0000 0000 0000 0000 0000 0000 0000 1110
  这个数字转换为十进制就是数字14 l ~(NOT)
  运算规则:只操作一个数字,将该数字中为1的位变成0,为0的位变成1.适用场合:反转数字的内容示例代码:
  int a = 4;
  int c = ~a;
  计算过程:
  4的二进制形式为0000 0000 0000 0000 0000 0000 0000 0100
  按照计算规则,结果为1111 1111 1111 1111 1111 1111 1111 1011
  这个数字转换为十进制就是数字-5.其实位运算和实际的应该实现保持一致,也就是提供的电路级运算符号,每种运算符都有对应的电路实现。
  实际使用简单示例:
  把任意数字转换为正数
  假设n是一个任意的整数,则把n转换为正数的代码为:
  int m = n & 0x7fffffff;
  判断任意数字倒数第三位的值是否为1假设n是一个任意的整数,则判断的代码为:
  int m = n & 0x4;
  boolean b = (m != 0);
  将任意数字倒数第四位置为
  假设n是一个任意的整数,则代码为:
  int m = n | 0x8; 转
分享到:
评论

相关推荐

    Java中位运算符.pdf

    Java中位运算符 Java 中位运算符概述 Java 中位运算符是用于对二进制位进行操作的运算符。这些运算符可以对整型和字符型数据进行操作,操作结果为一个整数。位运算符可以分为一元运算符和二元运算符两种。 位...

    Java中的运算符Java中的运算符

    Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java中的运算符Java...

    Java中位运算符在操作逻辑型数据时与逻辑运算符&&、-、!不同的测试

    Java中位运算符在操作逻辑型数据时与逻辑运算符&&、||、!不同的测试,测试结果逻辑运算符左侧的表达式会进行运算、右侧的不会,非运算一定会变;位运算符两侧都会变

    13.java位运算符.zip

    13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位...

    34.java短路逻辑运算符.zip

    34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip34.java短路逻辑运算符.zip...

    java位运算符之&AND操作视频

    Java语言中的位运算符是编程中的一个重要组成部分,尤其是在处理二进制数据或者进行高效计算时。在Java中,"&"符号被用作位AND运算符,它在二进制级别上进行操作,对两个操作数的每一位进行比较,并返回一个新值。这...

    JAVA中位运算符合移为运算符

    在阅读《JAVA中位运算符和移位运算符.docx》文档后,您将能更深入地理解这些运算符的实际应用和潜在的陷阱。无论是学习源码解析还是使用相关工具,掌握这些知识都将对您的Java开发工作大有裨益。

    超多Java初学者学习实例集锦.rar

    超多Java初学者学习实例集锦,涉及到Java中算术运算符的使用、Java中位运算符的使用、break语句的使用、continue语句的使用、用do-while语句计算10的阶乘、用for语句计算10的阶乘、Java中逻辑运算符的使用、求三个数...

    基于 Java封装 的位运算符,使用位运算符时更加方便

    【作品名称】:基于 Java封装 的位运算符,使用位运算符时更加方便 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: ...

    java学习-java的运算符

    本资料包"java学习-java的运算符"是针对Java运算符的学习资源,旨在帮助你深入理解和熟练运用Java中的各种运算符。 1. **算术运算符**:Java中的算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和取余...

    9.java赋值运算符.zip

    9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip9.java赋值运算符.zip...

    35.java三元运算符.zip

    35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元...

    32.java关系运算符.zip

    32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系运算符.zip32.java关系...

    30.java赋值运算符.zip

    30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值运算符.zip30.java赋值...

    10.java算术运算符.zip

    10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术运算符.zip10.java算术...

    java条件运算符

    这是java的条件运算符的基本例子,可参照代码来学习。

    java位运算符之左移操作视频

    Java语言中的位运算符是编程中的一个重要组成部分,尤其是在处理底层数据和优化代码性能时。左移操作符()是位运算符之一,它在Java中有着特定的应用和理解。本篇文章将深入探讨Java中的左移操作符及其相关知识点。...

    Java中算术运算符的使用

    Java中算术运算符的使用 初级 很简单 特别适合入门的人学习

    14.java三位运算符.zip

    Java中的三元运算符,也称为条件运算符,是编程语言中的一种简洁表达方式,用于在单个语句中执行条件判断。它提供了一种替代传统if...else语句的方法,尤其是在需要根据某个条件返回一个值时。在Java中,三元运算符...

    33.java逻辑运算符1.zip

    33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33.java逻辑运算符1.zip33...

Global site tag (gtag.js) - Google Analytics