运算符和表达式
来源:互联网 发布:混沌摆制作方法与数据 编辑:程序博客网 时间:2024/05/14 16:35
单目(元)运算符 双目运算符 三目运算符
算术运算符 + - * / % 加减乘除 求模
int a = 1; int a = 2;
int b = ++a; int b = a++ ; ++a>>>> b = a+1,a = 2
System.out.println("b=" + b,"a =" + a); System.out.println("a = " + a,"b = " + b); a++>>>>b=a=2 a=a+1=3
a=2 b=2 a = 3 b = 2
递增运算符++在操作数前则先加1后赋值,递增运算符在后则先赋值后加1
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
位运算符 先转化成二进制再进行运算
& 与运算 同为1则为1,否则为0; 例如 1 & 4 =====0
| 或运算 有一个为1就为1,否则为0; 例如 2 | 4=====6
! 非运算 正数的反码和补码都是原码 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.
根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.
byte a = 3; 0000 0011 原码
byte b = !a; 1111 1100 取非
system..out.println(“b=” + b); 1000 0011 取反
1000 0100 取补
b=-4
数学运算符
数学运算,结果为一个数值。见下表:
关系运算符
关系运算符与逻辑运算符,结果为一个布尔值。见下表:
位运算符
位运算符对整数的二进制形式逐位进行逻辑运算,得到一个整数。见下表:
1.与运算符
与运算符用符号“&”表示,其使用规律如下:
两个操作数中位都为1,结果才为1,否则结果为0,
2.或运算符
或运算符用符号“|”表示,其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0,
3.非运算符
非运算符用符号“~”表示,其运算规律如下:
如果位为0,结果是1,如果位为1,结果是0,
4.异或运算符
异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1。
- 表达式和运算符
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 表达式和运算符
- 表达式和运算符
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 运算符和表达式
- 表达式和运算符
- 运算符和表达式
- Android常用工具类(一)
- linux下scrapy环境搭建
- iOS内存优化,性能优化
- VideoPlayerKit makefile报错的解决方案
- eclipse安装jrebel控件及破解方法,maven项目的热部署
- 运算符和表达式
- Java运算符优先级
- 为什么user build 的system.img会比eng build 大(mtk)
- uses-permission权限列表
- 经典排序算法(2)——快速排序算法详解
- 一次完整的HTTP事务是怎样一个过程?
- <%#eval%>和<%#bind%>的区别
- iOS各种加密总结
- System.err.println()是什么?什么时候要用到它