java语言基础(13)——运算符基本用法(算数、赋值、比较、逻辑、位运算符)
来源:互联网 发布:淘宝直播平台公约 编辑:程序博客网 时间:2024/09/21 09:21
算数运算符:
+ - * / % ++ --
class Operator{public static void main(String[] args){ int x = 3; int y = 4; System.out.println(x+y); // 7 System.out.println(x-y); // -1 System.out.println(x*y); // 12 System.out.println(x/y); // 0 整数相除,只能得到整数 // 若要得到浮点数,把其中任意一个数字变成浮点数,如下: System.out.println(x*1.0/y); // 0.75 System.out.println(x%y); // 取余 3 // ++ -- // 1单独使用 在变量前后效果一样 x++; // 或 ++x; y--; // 或 --y; System.out.println(x);//4 System.out.println(x);//3 // 2参与运算时使用 int a = 1; int b = 2; int c = 3; int d = 4; int e = a++;// 后++ 先赋值再++ int f = b--;// 后-- 先赋值后-- int g = --c;// 前-- 先--再赋值 int h = ++d;// 前++ 先++再赋值 System.out.println("---------"); System.out.println(a);//2 System.out.println(b);//1 System.out.println(c);//2 System.out.println(d);//5 System.out.println(e);//1 System.out.println(f);//2 System.out.println(g);//2 System.out.println(h);//5}}
赋值运算符:
= += -= *= /= %=
int x = 1; 普通的赋值
x += 10; 把x与10相加再赋值给x
x -= 10; 把x与10相减再赋值给x
同理 *= /= %= 都是如此
注意 x +=10 与 x = x+10 的区别,比如:
class Operator{public static void main(String[] args){ // byte b = 1; // b = b+1; // 报错 可能损失精度 // 因为byte b 在运算是转为了int // 现在要用byte类型的b接收,所以会报错 //System.out.println(b); byte b = 1; b += 1; System.out.println(b); //2 // 可见 b += 1;并不等价于 b=b+1 b+=130; System.out.println(b);//-124 //由此可见 b+=1 等价于 b=(byte)b+1;默认做了强制转换 }}
比较运算符:
== != > >= < <=
特点:无论表达式简单与否,返回的结果是boolean值
注意:== 不可写为=
逻辑运算符:
逻辑运算符,用于连接布尔型表达式或值,即两边的表达式必须都返回布尔值
& | ^ ! && ||
& and(与) | or(或) ^ xor(异或) ! not(非) && and(短路) || or(短路)
注意:^ xor(异或) 相同则为false 不同则为true
false ^ false = false
false ^ true = true
true ^ false = true
true ^ true = false
&& 与 & 的区别 || 与 | 的区别
& | 会把左右两边的表达式都运算完
而 && 当左边表达式为真时,才会运算右边,|| 当左边表达式为假时,才会运算右边
位运算符:
注意:要做位运算,首先把数据转换为二进制补码,运算完后转回原码。
& 与(都为1则为1) | 或(有1则1) ~ 取反(1变0,0变1) ^ 异或(相同则为0,不同则为1)
根据前面学习的原码,反码,补码的知识,很容易得出运算结果。
^ 异或的特点:一个数据对同一个(另外一个)数据异或两次,其本身不变。
位异或运算的小应用(两个数互相交换其值):
class Operator{public static void main(String[] args){ // 一个数据对另一个数据异或两次,其本身不变的小应用, // 交换两个数的值 int a = 10; int b = 20; a = a^b; b = a^b; //等量代换 a a^b^b 结果是a 此句是把a赋值给b a = a^b; //等量代换 a a^b^a 结果是b 此句是把b赋值给a System.out.println(a);//20 System.out.println(b);//10}}
<< 左移 >> 右移 >>> 无符号右移
注意是补码运算否则容易搞混
左移:数据往左移动,左边最高位丢弃,右边用0补齐;
右移:数据向右移动,空缺位补0,最高位是1的,最高位补1;
无符号右移:无论最高位是0还是1,空缺位都用0补齐。结果永远是正数
3<<2; // 12 相当于 3*2的2次方
8>>2; // 2 相当于 8/2的2次方
三目运算符:
格式:表达式1?表达式2:表达式3;
如果表达式1的结果是true,则最终运算结果取表达式2的结果,否则取表达式3的结果。
- java语言基础(13)——运算符基本用法(算数、赋值、比较、逻辑、位运算符)
- 03.Java语言基本语法之运算符,算数、赋值、比较、逻辑、位、三元运算等
- Java学习基础:运算符和表达式(算数运算、关系运算、逻辑运算、位运算、条件运算、赋值运算)
- Python 运算符(算数 比较 赋值 位 逻辑 成员 身份 优先级)
- 六:Java语言基础组成——运算符之赋值运算符、比较运算符
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- java中的运算符|基础 学习笔记 算术、赋值、比较、逻辑、位
- Java基础之运算符(算数运算符和赋值运算符)
- JAVA基础——初识JAVA(四)(Scanner、算术、赋值、比较、逻辑、三元运算符)
- 【JavaScript笔记】1.4 赋值 算数 比较 逻辑 三元 运算符 ++ +=
- 算数运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符,位运算符,字符和字符串参加运算
- java学习笔记(算数运算符 赋值运算符 )
- 黑马程序员-----Java基础知识---常量---进制----变量---运算符(算术--赋值--比较--逻辑--位--三元)----if语句---switch语句
- 算数运算符(+-*/)优先级>移位运算>位运算>逻辑运算
- c语言基础5—算数运算
- 19.java语言基础-赋值运算符
- Java语言基础算术运算符的基本用法
- Java语言基础三元运算符的基本用法
- A. Neverending competitions
- SSL 1589——火车票
- jdbc总结
- 到处是坑,真正的最新版本Andriod JNI Hello World 出炉了!
- 图的最小生成树---克鲁斯卡尔(Kruskal)算法
- java语言基础(13)——运算符基本用法(算数、赋值、比较、逻辑、位运算符)
- 1013. 数素数 (20)
- 编译安装Nginx
- ios--数据的临时保存形式
- Set源码解析
- 鸟叔linux 摘要
- 机器学习中“批量梯度下降”公式推导
- 洛谷P1629 邮递员送信
- JavaScript—正则表达式中的特殊字符