`
javawangzilong
  • 浏览: 57102 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

java中的运算符

阅读更多
Java运算符?
Java中进行运算时所需要运用到的一些符号。
需要参加运算的数据的类型相同,
如果参加的运算类型不同,会有类型转换过程发生。
转换成同一类型再进行计算。


如何进行强制转换?
例如byte:

int i = 1;
byte b = i;

这样肯定是不行的,因为i是int类型的数,把i转换成byte类型
必须要经过强制转换,因此要写成下面这样。

int i = 1;
byte b = (byte)i;

字符串数据和任何数据做+运算,都没有加法的含义,
这个+是一个连接符,任何数据和字符创相连接都会变成一个新的字符串

例如:System.out.prinitln(“5+5=”+5+5);
输出是5+5=55

**
byte b1 = 3;
byte b2 = 4;

byte b3 = b1 + b2;
byte b4 = 3 + 4;

byte b3 = b1 + b2;
编译失败,
因为计算机不知道b1是多少,b1是一个变量
byte b4 = 3 + 4;
编译通过。计算机在编译时判断3+4是否在byte范围内,如果是
即可编译通过。


算数运算符-----------------------------

+ 加   - 减   * 乘   / 除
%   取余(就是一个数除以另一个数的余数)
对于取余运算来说
例如2%3
当左边小于右边,结果是左边,
左边等于左边,结果是0
如果出现负数,结果指依赖于左边的符号。
常见用法:
对2进行取模运算,结果不是0,就是1,可以完成一个切换算法。

++ 自增(前) ++a
++  自增(后) a++
-- 自减(前) --a
--   自减(后) a--

前++ 和 后++的区别?
a++ 与 ++a 执行之后a的值是一样的,不同的是,
++a是先让a+1,然后取出a的值进行计算;
a++是先取出a的值进行计算,然后a+1。
例如
int a = 3,b=4;
int c = b + a++;
System.out.println(c);
c的值是7

int a = 3,b=4;
int c = b +  ++a;
System.out.println(c);
c的值是8



赋值运算符-----------------------------
= , += , -= , *= , /= ,%=
例示:
int a,b,c;
a = b = c = 3;
int a = 3; a += 5等同于运算a = a+5;


**
short s = 3;
s = s+2;和s += 2;
有什么区别?

s = s+2 不会通过编译,因为2是int型的,
是四个字节的,而s是两个字节的,所以会出现错误。
而s += 2不会出现编译错误,因为 += 是赋值运算符
这是一个赋值语句,所以会有一个自动转换动作。


比较运算符--------------------------------
== 相等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
Instanceof 检查是否是类的对象

逻辑运算符--------------------------------
& 与



| 或



^ 异或



! 非


&& 短路与
|| 短路或


&& 和 & 的区别?
&是无论左边是true还是false,两边都运算
&&是当左边卫false时,右边就不用计算了。
&可以表示位运算符




||和|的区别
|是两边都计算
||当左边是true右边就不用计算了
|可以表示位运算符

位运算符------------------------------------
<< 左移
>> 右移
>>> 无符号右移
& 与运算
| 或运算
^ 异或运算
~ 反码

位运算符的特点
6的二进制数是110, 3的二进制数是011

反码其实就是取反,对二进制取反,将0变1,1变0.

如何求负数的二进制?
负数的二进制其实就是对应的整数,进行取反+1;
-6 = 1111-1111 1111-1111 1111-1111 1111-1010;
负数的二进制,最高位都是1.

如何计算&运算?



异或:
一个数异或另一个数两次,结果还是这个数。

怎样不通过第三方变量交换两个变量的值?
  int a = 3;
  int b = 5;
  a = a^b;
  b = a^b;
  a = a^b;
  这样就交换了,因为第一步a=a^b,第二步b=a^b相当于b=a^b^b=原a;
  第三步a = a^b就相当于a = a^b^a^b^b=原b


在简单的加密软件中可以用的到

X就相当于那个密钥,只要知道了x的值,和的值就全都知道了


什么是<<(左移)运算符?
左移运算符就是将一个数字转换成二进制数,让整体向左移。
例如6的二进制数是第一行,第二行是左移之后的二进制数。

6<<1 = 12;相当于 6*2 = 12;
但是左移的运算效率很高。
左移的特点:乘以2的次幂(移几位,就是几次幂)

什么是>>(右移)运算符?
右移运算符就是将一个数字转换成二进制数,让整体向右移。
例如6的二进制数是第一行,第二行是左移之后的二进制数。

右移:就是一个除以2的次幂动作(移几位,就是2的几次幂)

什么是>>>(无符号右移)运算符?
一般的>>右移是最高位为0,右移后,最高位的空位用0补。
如果最高位为1,右移后,最高位的空位用1补。
而>>>无符号右移是无论最高位是0还是1,右移后,出现空位,都用0补。

>>>(无符号右移)的用法?
例如 第一行是60的二进制表现形式

第二行是15的二进制表现形式

第三行是 60 & 15 的二进制表现形式(12)。
12的二进制是1100,而1100是六十的二进制表现形式的最后四位,
如果想要获取60二进制数的最后的4--8位,可以用无符号右移运算符

int num = 60;
num = num >>> 4;

















分享到:
评论

相关推荐

    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位...

    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算术...

    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...

    java学习-java的运算符

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

    java条件运算符

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

    java 移位运算符的资源

    Java 移位运算符是编程语言中用于处理二进制位的一种高效操作方式,它们能够对整数类型(byte, short, int, long)的值进行左移、右移和无符号右移操作。理解这些运算符对于优化代码和深入理解计算机底层工作原理至...

    28.java运算符.zip

    28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符...

    java 转型运算符的资源

    在Java编程语言中,转型运算符是至关重要的概念,它涉及到不同数据类型的转换。Java提供了两种主要的转型方式:自动类型转换(也称为隐式转换)和强制类型转换(也称为显式转换)。理解并熟练掌握这些转换对于编写...

    java 算术运算符的资源

    在Java编程语言中,算术运算符是进行基本数学计算的关键元素。它们允许我们执行加法、减法、乘法、除法等操作。本文将深入探讨Java中的算术运算符,以及它们如何用于处理数值。 1. 基本算术运算符: - 加法 (+):...

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

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

    java运算符小程序

    Java运算符是编程语言中用于执行特定操作的关键符号,它们在Java程序中起着至关重要的作用,帮助我们处理数据和控制程序流程。在这个"java运算符小程序"中,我们可以探索和学习Java中的各种运算符及其用法。 1. **...

    javaJava运算符+(优先级、目数)

    Java运算符+(优先级、目数)

    Java运算符的使用

    Java运算符是编程中不可或缺的部分,它们用于执行各种计算和逻辑操作。Java提供了四大类运算符:算术运算符、位运算符、关系运算符和逻辑运算符。 1. **算术运算符**: - `+`:加法运算,可用于整数、浮点数的相加...

    Java 条件运算符的嵌套实例.rar

    Java练习条件运算符使用,利用条件运算符的嵌套来完成学习成绩优秀、良好等的分类&gt; =90分的同学用A表示, 60-89分之间的用B表示,60分以下的用C表示。测试时请输入N的值,输入exit则退出程序。主要是代码:  String...

    Java 三目运算符

    这个例子展示了如何在一个三目运算符中嵌套另一个三目运算符,以实现更复杂的条件判断逻辑。这里根据`x`的值返回1(正数)、-1(负数)或0(零)。 6. **替换if-else语句**: ```java System.out.println((a % 2...

Global site tag (gtag.js) - Google Analytics