Java_运算符和表达式

  • 运算符
    • 算术运算符:+、-、*、/、 %、++、--
      • 加法(+)
      • 除法(/)
      • 取余(%)
    • 关系运算符:<、>、<=、>=、==、!=
    • 逻辑运算符:&、|、!、^、&&、||
    • 位运算符:&(位与)、|(位或)、^(异或)、~(取非)、>>(右移)、<<(左移)、>>>(无符号右移)
      • Integer.toBinaryString() 一个整数的二进制表达
      • &(位与)、|(位或)、^(异或)、~(取非)
      • <<(左移)、>>(右移)
      • >>>(无符号右移)
    • 赋值运算符:=、+=、-=、*=、/=、%
    • 三元运算符:?
  • 表达式

运算符

算术运算符:+、-、*、/、 %、++、–

加法(+)

  • 可以表示数值的相加
  • 可以表示字符串的联接 eg: “123”+“abc” —> “123abc”
  • 把非字符串转换成字符串 eg: “x”+123 —> “x123”
  • 整数变量的运算结果至少是int型 eg: byte b3=b1+b2; // error,至少为int型
  • 如果有一个整数变量是long型,那么运算结果是long型
public class Demo {public static void main(String[] args) {System.out.println(123);System.out.println('A');System.out.println(1+3);System.out.println('a'+1);System.out.println(" "+'a'+1);}
}

运算结果:

除法(/)

  • 除法/的运算结果与运算对象的数据类型有关,若两个数都是int,则商就是int,若商有小数,则截去小数部分。eg: 16 / 5 == 3;
  • 若两个对象中有一个或两个都是浮点型数据,则商也是浮点型,不截去小数部分。eg: 16 / 5 == 3.20000;

取余(%)

  • Java中允许取余运算符的被除数和除数是实数(与C/C++是不同的),但所得余数的正负只和被除数相同
    eg: double x = 1 % -0.3;
    System.out.println(x); => 0.100000000003

关系运算符:<、>、<=、>=、==、!=

逻辑运算符:&、|、!、^、&&、||

  • 异或^ :不同,返回真;相同,返回假。
  • 对于boolean型结果的表达式进行运算,运算的结果都是boolean型。
  • &和&&的区别在于:如果使用&,无论任何情况,两边的表达式都会参与计算;而当&&的左边为flase时,则不会计算其右边的表达式。

位运算符:&(位与)、|(位或)、^(异或)、~(取非)、>>(右移)、<<(左移)、>>>(无符号右移)

Integer.toBinaryString() 一个整数的二进制表达

  • 位操作都是对二进制而言的,但是我们平常使用的都是十进制。所以在开始学习之前,需要掌握一个整数的二进制表达是多少。通过Integer.toBinaryString() 方法,将一个十进制整数转换为一个
public class Demo {public static void main(String[] args) {      int i = 5;String b = (Integer.toBinaryString(i));System.out.println(i+" 的二进制表达是: "+b); // 5 的二进制的表达是:101       }
}

&(位与)、|(位或)、^(异或)、~(取非)

  • &(位与):两边全是真时为真,否则为假。
  • |(位或):有一个为真时就为真,无真时为假。
  • ^(异或):相同时为假,不同时为真。
  • ~(取非):取反。

<<(左移)、>>(右移)

  • 左移:根据一个整数的二进制表达,将其每一位都向左移动,最右边一位补0
  • 右移:根据一个整数的二进制表达,将其每一位都向右移动
  • 注意:对于正数, 带符号右移 >> 会把所有的位右移,并在最前面补0。对于负数, 带符号右移 >> 会把所有的位右移,并在最前面补1。

>>>(无符号右移)

  • 如果是一个负数,那么对应的二进制的第一位是1。无符号右移>>>会把第一位的1也向右移动,导致移动后,第一位变成0。这样就会使得负数在无符号右移后,得到一个正数
public class Demo {public static void main(String[] args) {      int i = 6;int j = -4;int k = -10;System.out.println(Integer.toBinaryString(i));//6的二进制是110System.out.println(Integer.toBinaryString(j));//-4的二进制是11111111111111111111111111111100System.out.println(Integer.toBinaryString(k));//-10的二进制是11111111111111111111111111110110System.out.println(i<<1);//6向左移1位后,变成1100,对应的10进制是12        System.out.println(i>>1);//6向右移1位后,变成11,对应的10进制是3       System.out.println(j<<1);//-4向左移1位后,变成-1000,对应的10进制是-8        System.out.println(j>>1);//-4向右移1位后,变成-10,对应的10进制是-2//-10无符号向右移1位,符号位也会向右移,第一位就变成了0//得到01111111111111111111111111111011,对应的十进制是2147483643System.out.println(k>>>1);}
}

赋值运算符:=、+=、-=、*=、/=、%

  • 运算符左边的操作数必须是变量,右边的操作数必须是表达式,两边的数据类型必须兼容。
  • 例子:y=x=2+5; // 即y=(x=2+5)
    m+=m*=n-=mn; // 即m=m+(m=m(n=n-m*n))

三元运算符:?

  • 表达式?值1:值2;
    如果表达式为真 返回值1;如果表达式为假 返回值2。

表达式

  1. 定义:
  • 表达式:用运算符将操作数连接起来的符合语法规则的运算式。
  • 操作数:可以是常量、变量和方法调用。
  1. 分类:算术表达式、布尔表达式、字符串表达式
  • 表达式的数据类型由运算结果的数据类型决定。操作数的数据类型必须与运算符相匹配。
  1. 运算符优先级

Java_表达式和运算符(算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和三元运算符)相关推荐

  1. 【JavaSE】算术运算符、关系运算符、逻辑运算符、赋值运算符与三元运算符

    本专栏为 JavaSE 的学习笔记及相关项目,专栏长期免费更新 ❤️ ❤️ ❤️ ⭐️往期回顾: [JavaSE]String类与基本数据类型转换 [JavaSE]Java数据类型.变量基本使用.编码 ...

  2. C#中的表达式和运算符

    欢迎您成为我的读者,希望这篇文章能给你一些帮助. 前言 今天和大家一起学习下C#中的表达式和运算符,都是很基础的知识点. 在日常的编码过程中,对于表达式和运算符我们每天都在使用.比如像下面的代码 in ...

  3. CSharp(C#)语言_第六章(表达式和运算符)

    表达式和运算符 6.1 表达式 6.2 字面量 6.2.1 整数字面量 6.2.2 实数字面量 6.2.3 字符字面量 6.2.4 字符串字面量 6.3 求值顺序 6.4 简单算术运算符 6.5 求余 ...

  4. CH4_表达式和运算符

    表达式和运算符: *原始表达式 *对象和数组的初始化表达式 *函数定义表达式 *属性访问表达式 *调用表达式 *对象创建表达式 *运算符概述 *算术表达式 *关系表达式 *逻辑表达式 *赋值表达式 * ...

  5. C语言表达式和运算符大学霸IT达人

    C语言表达式和运算符大学霸IT达人 C语言中表达式会包含常量.标识符.运算符.最基础最简单的表达式就是常量表达式.单独的常量表达式是没有意义的.例如,3就是一个常量表达式,单独放在一处没有实际的意义. ...

  6. java犀牛书_犀牛书学习笔记(1):语法结构、数据类型和值、表达式和运算符...

    把这三个部分写在一起,是因为这些和JAVA几乎相同,如果你有JAVA或者C的基础,可以快速阅读.这里只记录几个不一样的,需要记住的地方: 1.直接量概念:其实就是用具体值直接赋值来创建变量,比如&qu ...

  7. JavaScript深入【表达式和运算符(上集)】你能过我8关js运算符的题目吗?

    博主留言 (茗洋芳竹) 每一个高手成功之路,都要学会怎样与孤独打交道 .我是个傻孩子,孤独竟然是我的夫人,每天晚上都会坐在我旁边看我学习,写博客.马上要离开ASP.NET生涯,投奔PHP了,一切都是那 ...

  8. 第 4 章(表达式和运算符)(4.1~ 4.7)

    表达式是JS中的一个短语,JS 解释器会将其计算出一个结果.程序中的常量是最简单的一类表达式.变量名也是一种简单的表达式,它的值就是赋值给变量的值.复杂表达式是由最简单表达式组成的. 将简单表达式组合 ...

  9. Java基础9----运算符2(关系,逻辑运算符)

    文章目录 引言 关系运算符 三目(赋值)运算 逻辑运算符 引言 前面一篇博文,讲了java中的数学运算符,这里将要讲关系运算符和逻辑运算符 关系运算符 关系运算简单来说就是我们的大小的比较处理.也就是 ...

最新文章

  1. 014PHP基础知识——流程控制(二)
  2. seata-golang 一周年回顾
  3. Scanner类的一个小例子
  4. Scala学习笔记:how to convert a StringRDD to Array
  5. access和python哪个难学-access和python学哪个好一点
  6. c语言文件压缩与解压缩实验报告,哈弗曼树的文件压缩和解压实验报告(C语言).doc...
  7. leetcode - 783. 二叉搜索树结点最小距离
  8. php输出一条直线,Photoshop脚本 绘制一条线
  9. 三 jQuery 选择器
  10. Python花式编程案例集锦(9):sorted()函数中消失的cmp参数
  11. GT S7278 Android4.4,三星S7278U官方原版固件rom系统刷机包(线刷格式)
  12. Google Earth Engine APPS(GEE)——使用 AREA2 和 CODED 估算森林砍伐和退化面积巴西森林砍伐案例总览
  13. JavaScript实现输入框(密码框)出现提示语
  14. loadrunner 注册破解
  15. PHP调用系统声卡,什么是声卡
  16. 微信禁止模拟器登录怎么办?
  17. 腾讯qq发起临时会话链接
  18. 3.抽象类(shape)
  19. 团队任务3每日立会(2018-10-24)
  20. 安卓 Charles证书的安装

热门文章

  1. 移动端h5 实现多个音频播放
  2. 「杀不掉的」僵尸(zombie)进程
  3. 伽利略变换的极限式证明及推论
  4. 编译器连接器分析器_使用构建分析器了解您的构建
  5. 丅rust是什么意思_Rust入坑指南:亡羊补牢
  6. 关于程序员跑步的建议和忠告
  7. 【CSDN AI周刊】第14期 | 吴恩达离职百度 CNN之父清华演讲
  8. CRM销售管理系统:用数据共享提升客户满意度
  9. 转行IT行业怎么学习比较好
  10. android4.3 打包成image,DCloud 离线打包之Android Studio