JavaSE运算符

本文详细解读了Java SE中的算数运算符(包括基本四则运算与取余)、关系运算符、逻辑运算(&&, ||, !)以及位运算(按位与|、异或^、取反~)。特别强调了除法的规则、自增自减运算的区别、以及条件运算符的使用。
摘要由CSDN通过智能技术生成

JavaSE运算符

1.1、算数运算符
*基本四则运算符 + - * / % 值得注意的是除法
1)int/int结果还是int,需要用double来计算
![在这里插入图片描述](https://img-blog.csdnimg.cn/b27236fbd4c44815bf1eddc1f0f1c34d.pn在这里插入图片描述
结果为0;想要得到0.5那就要用double来计算
在这里插入图片描述
b)0不能作除数
在这里插入图片描述

c)%表示取余(得到的是余数),还可以对double取余
在这里插入图片描述

*增量赋值运算符+= -= *= /= %=
	a)a -= 1;相当于a = a - 1;其他几个都是一样的用法

在这里插入图片描述

b)自增自减运算符 ++ --
	a++,++a两个是不一样的
	a++是先++,在使用
	++a是先使用,后++

在这里插入图片描述
结论:

  1. 如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.

  2. 如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值

    *关系运算符 == != < > <= >=
    在这里插入图片描述
    注意: 关系运算符的表达式返回值都是 boolean 类型

    *逻辑运算符 && || !
    a)逻辑与&&
    规则: 两个操作数都为 true, 结果为 true, 否则结果为 false

    在这里插入图片描述
    b)逻辑或 ||
    规则: 两个操作数都为 false, 结果为 false, 否则结果为 true
    c)逻辑非 !
    规则: 操作数为 true, 结果为 false; 操作数为 false, 结果为 true(这是个单目运算符, 只有一个操作数

    d)短路求值
    在这里插入图片描述

  3. 对于 && , 如果左侧表达式值为 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式

  4. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式

    *位运算符
    按位与&、按位或|、按位取反~、按位异或^
    位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的每一位依次进行计算.
    在这里插入图片描述
    当& 和 |运算时,操作数为整数(int ,short ,long,byte)的时候,表示按位运算,当操作数为Boolean 的时候,表示逻辑运算。

    按位取反~
    int a = 10; a 的二进制:1010
    b = ~a; b的二进制: 0101
    注意:

  5. 0x 前缀的数字为 十六进制 数字. 十六进制可以看成是二进制的简化表示方式. 一个十六进制数字对应 4 个二进
    制位.

  6. 0xf 表示 10 进制的 15, 也就是二进制的 1111

  7. printf 能够格式化输出内容, %x 表示按照十六进制输出.

  8. \n 表示换行符

    移位运算符:<< >> >>>都是按二进制位 来运算
    1)左移 <<:最左侧不要了,最右边补0;
    10 <<1(右移1位) 20 ---------> 相当于102^1
    0000 1010 <<1 0001 0100(20) 相当于10
    2^1
    0000 1010 <<2 0010 1000(40) 相当于10*2^2

    2)右移 >>:最右侧不要了,最左侧补符号位(正数补0;负数补1)
    10 >>1 (左移1位)
    0000 1010 <<1 0000 0101 5(二进制) 相当于10/2
    原码 反码 补码
    1000 1010(-10)(负数的右移需要将-10换算成补码的形式计算,再将补码换算成原码打印)------1111 0101 ------- 1111 0110 (再将补码转换成原码打印(就是求原码到补码的逆过程 ,先减1 ,符号位不变按位取反))-----1111 0101------1000 1010

1000 1010(原码-10) >> 1 1111 0101(反码) 1111 0110(补码)右移1位-------1111 1011(右移1位的补码)-----1111 1010(补码-1)------1000 0101(符号位不变,,按位取反(原码)) -5在这里插入图片描述
无符号右移 >>> :最右侧不要了,最左侧补0

**条件运算符:表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式
3 的值
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Später321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值