`
javawangzilong
  • 浏览: 55449 次
  • 性别: 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...

    Java运算符Java运算符Java运算符Java运算符Java运算符

    Java运算符Java运算符Java运算符Java运算符Java运算符Java运算符Java运算符Java运算符

    java 移位运算符的资源

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

    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 转型运算符

    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学习-java的运算符

    这是从java 私塾跟我学系列-java篇中摘出来的运算符部分,着重学习学习,加深一下对运算符的掌握

    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位运算符之&AND操作视频

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

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

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

Global site tag (gtag.js) - Google Analytics