Java中的运算符

运算符

Java中运算符分为:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 三元运算符

一、算术运算符

   算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。

   表格中的实例假设整数变量A的值为10,变量B的值为20:

操作符描述例子
+加法 - 相加运算符两侧的值A + B 等于 30
-减法 - 左操作数减去右操作数A – B 等于 -10
*乘法 - 相乘操作符两侧的值A * B等于200
/除法 - 左操作数除以右操作数B / A等于2
取余 - 左操作数除以右操作数的余数B%A等于0
++自增: 操作数的值增加1B++ 或 ++B 等于 21
--自减: 操作数的值减少1B-- 或 --B 等于 19

a++与++a的区别(a--和--a同理)?

单独使用时,功能一模一样,都是让a的值增加1;
不同的是与赋值号“=”一起使用时,y=++a表示先将a的值增加1后,再把值赋给y;
而,y=a++表示先把a的值给y,a自己再增加1.

二、关系运算符

关系运算符用来比较两个值的关系。关系运算符是二元运算符,运算结果是 boolean 型。当运算符对应的关系成立时,运算结果是 true,否则是 false。

  • 大于:>  
  • 小于: <
  • 大于等于:> =
  •  小于等于:< =
  •  等于:==  
  • 不等于:!=

表格中的实例整数变量A的值为10,变量B的值为20:

运算符描述例子
==检查如果两个操作数的值是否相等,如果相等则条件为真。(A == B)为假。
!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。(A != B) 为真。
检查左操作数的值是否大于右操作数的值,如果是那么条件为真。(A> B)为假。
检查左操作数的值是否小于右操作数的值,如果是那么条件为真。(A <B)为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。(A> = B)为假。
<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。(A <= B)为真。

三、位运算符

位运算要用到二进制,这里说一下进制:

  • 二进制 0,1 满2进1
  • 八进制 0~7 满8进1,用0开头表示
  • 十进制 0~9 满10进1,
  • 十六进制 0~9,A~F 满16进1 用0x表示开头

进制转换:

十进制:751=1*10^0+5*10^1+7*10^2=1+50+700=751

二进制转十进制:

要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右

例如:二进制数1101.01转化成十进制

1101.01=1*2^0+0*2^1+1*2^2+1*2^3 +0*2^(-1)+1*2^(-2)=1+0+4+8+0+0.25=13.25

所以总结起来通用公式为:

abcd.efg(2)=d*2^0+c*2^1+b*2^2+a*2^3+e*2-1+f*2-2+g*2-3(10)

十进制整数转二进制:除2取余,逆序排列法

十进制小数转换成二进制小数:采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。

如:0.625=0.101

0.625*2=1.25======取出整数部分1

0.25*2=0.5========取出整数部分0

0.5*2=1==========取出整数部分1

再如:0.7=0.1 0110 0110...

0.7*2=1.4========取出整数部分1

0.4*2=0.8========取出整数部分0

0.8*2=1.6========取出整数部分1

0.6*2=1.2========取出整数部分1

0.2*2=0.4========取出整数部分0

0.4*2=0.8========取出整数部分0

0.8*2=1.6========取出整数部分1

0.6*2=1.2========取出整数部分1

0.2*2=0.4========取出整数部分0

 

原码:正数的原码是它转换成的二进制数;负数的原码是它的绝对值转换成的二进制数,然后最高位补1(符号位)

反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。 

补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.

在计算机中 正数,负数都是通过补码的形式保存的。

 

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。

位运算符作用在所有的位上,并且按位运算。假设A = 60,B = 13;它们的二进制格式表示将如下:

A=00000000 00000000 00000000 00111100

B=00000000 00000000 00000000 00001101

A&B=00000000 00000000 00000000 00001100

A | B=00000000 00000000 00000000 00111101

A^B=00000000 00000000 00000000 00110001

~A=11111111 11111111 11111111 11000011(翻转操作数的每一位,即0变成1,1变成0  得到补码)

    11111111 11111111 11111111 11000010 (反码)

1000000 00000000 00000000 00111101(原码)

下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13:

操作符描述例子
位于,如果相同位都是1,则结果为1,否则为0(A&B),得到12,即0000 1100
|位或,如果相同位都是0,则结果为0,否则为1(A | B)得到61,即 0011 1101
^异或,如果相同位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001
取非,翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即1100 0011
<< 左移,左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>> 右移,左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111
>>> 无符号右移,左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。A>>>2得到15即0000 1111

四、逻辑运算符(得到结果为Boolean类型,true 或 false)

  与(短路与):&&   若第一个表达式为false则不执行第二个表达式

  ② 或:| |      ③ 非:!    ④ 异或:^   表达式仅有一个为 true 返回 true

五、条件运算符

 条件运算符(?:)也称为三元运算符

 语法:表达式(返回结果为boolean)? 表达式 1 : 表达式 2

 返回结果为 true 则执行 表达式 1 ,为 false 则执行 表达式 2

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值