Java基本运算符
1.算术运算符
作用是数字的计算,包括:正号+,负号-,乘*,除/,余%,加+,减-,其算法与数学中的运算相同。
算术运算符实例(假设变量A=10,变量B=20):
|
操作符 |
描述 |
例子 |
|
+ |
正号 |
+A=+10 表示正数10 |
|
- |
负号 |
-B=-20 表示负数20 |
|
+ |
加号 |
A+B=30 |
|
- |
减号 |
A-B=-10 |
|
* |
乘号 |
A*B=200 |
|
/ |
除号 |
B/A=2 |
|
% |
取余 |
B%A=0 |
2.位运算
将数字转成int型后,把二进制的0当作false,1当作true,每一位进行逻辑运算,运算结果为int型。运算符包括:位非~,位与&,位或|,位异或^,位左移<<,位右移>>,位补零右移>>>
位运算实例(假设变量A=60(二进制为00111100),变量B=13(二进制伟00001101)):
|
操作符 |
描述 |
例子 |
|
~ |
位非:翻转操作数的每一位 |
(~A),得到11000011,即195 |
|
& |
位与:当且仅当两个操作数的某一位都非0时该位才为1 |
(A&B),得到00001100,即12 |
|
| |
位或:只要两个操作数的某一位有一个非0时该位就为1 |
(A|B),得到00111101,即61 |
|
^ |
位异或:两个操作数的某一位不相同时改位为1 |
(A^B),得到00110001,即49 |
|
<< |
位左移:左操作数按位左移右操作数指定的数 |
A<<2,得到11110000,即240 |
|
>> |
位右移:左操作数按位右移右操作数指定的数 |
A>>2,得到00001111,即15 |
|
>>> |
位补零右移:左操作数的值按右操作数指定的位数右移,移动得到的空位为零填补。 |
A>>>2,得到00001111,即15 |
注:
1)位左移:将int型整数的二进制每位向左移动若干位,前面若干位左移出int范围的bit丢弃,数字位移动到符号位,后面若干位空出的bit补0。如果符号位没有发生改变,则等同于乘2的n次方
2)位右移:将int型整数的二进制每位向右移动若干位,后面若干位右移出int范围的bit丢弃,前面若干位空出的bit全都补符号位数字。等同于除2的n次方。
3)位补零右移:将int型整数的二进制每位向右移动若干位,后面若干位右移出int范围的bit丢弃,前面若干位空出的bit全都补0。正数等同于除2的n次方,负数补零右移后变正数。
3.字符串处理
只有一个操作符“+” , 作用是将多个字符串连接成1个大的字符串。
字符串运算实例(变量A=“abc”,变量B=123):
|
操作符 |
描述 |
例子 |
|
+ |
连接符:将多个字符串连接成1个大的字符串 |
A+B=”ABC123” |
4.关系运算
判断2者的关系,返回布尔值。包括:判断相等==,判断不等!=,判断大于>,判断大于等于>=,判断小于<,判断小于等于<=。
关系运算符实例(假设变量A=10,变量B=20):
|
操作符 |
描述 |
例子 |
|
== |
判断相等:检查两个操作数的值是否相等,如果相等则条件为真。 |
(A==B)结果为假(非真) |
|
!= |
判断不等于:检查两个操作数的值是否相等,如果不相等则条件为真。 |
(!A==B)结果为真 |
|
> |
判断大于:检查左操作数的值是否大于右操作数,如果大于则条件为真。 |
(A>B)结果为假 |
|
>= |
判断大于等于:检查左操作数的值是否大于等于右操作数,如果大于等于则条件为真。 |
(A>=B)结果为假 |
|
< |
判断小于:检查左操作数的值是否小于右操作数是,如果小于则条件为真。 |
(A<B)结果为真 |
|
<= |
判断小于等于:检查左操作数的值是否小于等于右操作数是,如果小于等于则条件为真。 |
(A<=B)结果为真 |
5.逻辑运算
关于关系的复合运算,返回布尔值。包括:逻辑反!,逻辑与&,逻辑或|,逻辑异或^。
逻辑运算实例(假设布尔变量A为真,B为假):
|
操作符 |
描述 |
例子 |
|
! |
逻辑反:用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 |
(!B)为真 |
|
& |
逻辑与:当且仅当两个操作数都为真,条件才为真。(全真才真) |
(A&B)为假 |
|
| |
逻辑或:两个操作数任何一个为真时,条件都为真。(全假才假) |
(A|B)为真 |
|
^ |
逻辑异或:两个操作数相同为假,不同为真。 |
(A^B)为真 |
附:
1.逻辑短路与,与逻辑与不同的是,一旦判断前一关系结果为假,则后续关系不做判断,直接返回结果为假。
2.逻辑短路或,与逻辑或不同的是,一旦判断前一关系结果为真,则后续关系不做判断,直接返回结果为真。
6.赋值运算
自增一++,自减一--,赋值=,自乘*=,自除/=,自余%=,自加+=,自减-=,自与&=,......
赋值运算实例:
|
操作符 |
描述 |
例子 |
|
++ |
自增一,操作数的值加1 |
当B=20时,B++=21 |
|
-- |
自减一,操作的值减1 |
当B=20时,B--=19 |
|
= |
简单的赋值运算符,将右操作数的值赋给左侧操作数 |
C=A+B将把A+B得到的值赋给C |
|
+ = |
加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 |
C+=A等价于C=C+A |
|
- = |
减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 |
C-=A等价于C=C-A |
|
* = |
乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 |
C*=A等价于C=C*A |
|
/ = |
除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 |
C/=A等价于C=C/A |
|
%= |
取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 |
C%=A等价于C=C%A |
|
<< = |
左移位赋值运算符 |
C<<=2等价于C=C<<2 |
|
>> = |
右移位赋值运算符 |
C>>=2等价于C=C>>2 |
|
&= |
按位与赋值运算符 |
C&=2等价于C=C&2 |
|
^ = |
按位异或赋值操作符 |
C^=2等价于C= C^2 |
|
| = |
按位或赋值操作符 |
C|=2等价于C=C|2 |
7.条件运算符
逻辑判断“?:”,用法:变量 x = (表达式) ? value if true : value if false ,逻辑判断?值1:值2,作用是判断逻辑是真还是假,如果是真则返回值1,否则返回值2。
例如(1>2)?3:4,因1>2为假,所以返回4,即(1>2)?3:4的结果为4。
附:Java运算符优先级
当多个运算符出现在一个表达式中,会涉及到运算的优先级别的问题,在一个多运算符的表达式中,运算级别的不同会导致结果差别很大。
顺序:算术→位运算→字符串运算→关系运算→逻辑运算→赋值运算
算术:正号负号>乘除余>加减;
关系运算:并列
逻辑:反>与>或/逻辑短路或>逻辑异或
赋值:自增自减>赋值、自乘、自除……
另外,要优先运算哪个,可以用()小括号括起来。
Java基本运算符的更多相关文章
- java移位运算符具体解释
java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的全部位都左移 ...
- JAVA的运算符和条件结构
一.JAVA的运算符. 1.赋值运算符 赋值就是把一个变量的值赋给另一个变量. 语法: 变量名=表达式 例如 n = m + 5 2.算术运算符 算术运算符是数学中常用的加.减.乘 ...
- java位移运算符3 转
https://www.cnblogs.com/winsker/p/6728672.html 移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数. 理解java移位运算符 运算 ...
- java位移运算符 转
https://blog.csdn.net/qq_36134429/article/details/78286416#commentsedit java移位运算符不外乎就这三种:<<(左移 ...
- Java 位运算符和 int 类型的实现
Java 位运算符和 int 类型的实现 其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.<.>=.<= # 逻辑运 ...
- 【java】运算符
Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+ - * / % ++ -- 关系运算符(6):== != > >= ...
- java 增量运算符
//java 增量运算符 public class Test16{ public static void main(String args[]) { int x1=10; x1+=3; //x1=x1 ...
- java三元运算符详解
最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题.鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故 ...
- 利用Java位运算符,完成Unsigned转换(无符号)
方案二:利用Java位运算符,完成Unsigned转换. 正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码: publi ...
- java移位运算符详解
http://soft.chinabyte.com/database/195/11553695.shtml java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和 ...
随机推荐
- 运用Microsoft.DirectX.DirectSound和Microsoft.DirectX实现简单的录音功能
1.首先要使用Microsoft.DirectX.DirectSound和Microsoft.DirectX这两个dll进行录音,需要先安装microsoft directx 9.0cz这个组件, 百 ...
- PHP常规模板引擎中与CSS/JSON冲突的解决
主要针对对象:Smarty/Dwoo 参考:http://developer.51cto.com/art/201009/224929.htm 其实以前都不怎么关注模板引擎,觉得没必要使用.但随着年龄的 ...
- 内核移植和文件系统制作(3)Ramdisk简介和常见问题
一,Ramdisk简介: Ramdisk是一种基于内存的虚拟文件系统(并非一个实际的文件系统),它将一部分固定大小(这个大小在编译内核的make menuconfig时配置)的内存当作硬盘一个分区来使 ...
- 股票投资组合-前进优化方法(Walk forward optimization)
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- linux环形buff模拟多线程信号量操作
互斥锁mutex变量的值非0即1,只能用来表示两种状态下的临界资源.而信号量是与之类似的,用来表示可用资源的,区别在于,信号量可以表示多个可用资源的. --值为2的信号量也就是特殊的互斥锁了. 那么下 ...
- Java编程思想读书笔记之内部类
现在是够懒得了,放假的时候就想把这篇笔记写出来,一直拖到现在,最近在读<Java编程思想>,我想会做不止这一篇笔记,因为之前面试的时候总会问道一些内部类的问题,那这本书的笔记就从内部类开始 ...
- 存放事务码及其描述的TABLE是TSTC、TSTCT。
存放事务码及其描述的TABLE是TSTC.TSTCT.
- FME中Cass扩展属性转Shp的方法
问题:真受不了CAD中的注记,只能方便显示,难于数据交互.好在Cass把属性信息基本写在扩展属性中,但显示又成问题了.此事难两全!我们通过查看实体属性,需要把宗地界线的扩展属性提取出来.即组码为-3, ...
- 详解HTML5中rel属性的prefetch预加载功能使用
在HTML5中,有个很有用但常被忽略的特性,就是预先加载(prefetch),它的原理是: 利用浏览器的空闲时间去先下载用户指定需要的内容,然后缓存起来,这样用户下次加载时,就直接从缓存中取出来,效率 ...
- GridView1_RowDataBound解决限制字段显示长度用"..."显示ToolTip
ToolTip: // // 摘要: // 获取或设置当鼠标指针悬停在 Web 服务器控件上时显示的文本. // // 返回结果: // 当鼠标指针悬停在 Web 服务器控件上时显示的文本.默认值为 ...