ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java 第四章学习 运算符

2022-07-01 22:34:06  阅读:163  来源: 互联网

标签:转换成 false 二进制 运算符 int java true 第四章


运算符

运算符介绍

  • 运算符介绍

运算符是一种特殊的符号,用以表示数据的计算,赋值和比较等。

  1. 算术运算符

  2. 赋值运算符

  3. 关系运算符(比较运算符)

  4. 逻辑运算符

  5. 位运算符(需要二进制基础)

  6. 三元运算符

算术运算符

  • 介绍

算术运算符是对数值类型的变量进行运算的,在Java程序中使用的非常多。

  • 算术运算符一览

算术运算符

  • 算术运算符注意点

  1. 对于除号,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:int x =10 /3 结果是3

  2. 取模的本质(重点):a % b = a - a / b * b;

  3. 自增 ++

  • 作为独立语句的使用:前++和后++都完全等价于 i=i+1;
  • 作为表达式使用:前++:++i先自增后赋值 后++:i++先赋值后自增。

关系运算符

  • 介绍

  1. 关系运算符的结果都是boolean型,也就是要么是true,要么是false

  2. 关系表达式 经常用在 if结构的条件中或者循环结构的条件中

  • 关系运算符一览

关系运算符

  • 细节说明

  1. 关系运算符的结果都是boolean型,也就是要么是true,要么是false。

  2. 关系运算符组成的表达式,我们称之为关系表达式。 a>b

  3. 比较运算符"=="不能误写成"="

逻辑运算符

  • 介绍

用于连接多个条件 (多个关系表达式),最终的结果也是一个boolean值。

  • 逻辑运算符一览

分为两组学习

  1. 短路与&& ,短路或|| ,取反 !

  2. 逻辑与 & 逻辑或 |,逻辑异或^

逻辑运算符

逻辑运算符规则

  1. a&b &叫逻辑与:规则:当a和b同时为true,则结果为true,否则为false

  2. a&&b &&叫短路与: 规则:当a和b同时为true,则结果为true,否则为false

  3. a|b:|叫逻辑或,规则:当a和b,有一个为true,则结果为true,否则为false

  4. a||b :||叫短路或,规则:当a和b,有一个为true,则结果为true,否则为false

  5. !a:叫取反,或者非运算。但a为true,则结果为false,当a为false时,则结果为true

  6. a^b:叫逻辑异或,当a和b不同时,则结果为true,否则为false

&& 和& 基本规则

名称语法特点
短路与&& 条件1&&条件2 两个条件都为true,结果为true,否则为false
逻辑与& 条件1&条件2 两个条件都为true,结果为true,否则为false
  • && 和 & 使用区别

  1. && 短路与: 如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高

  2. & 逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低

  3. 开发中,我们使用的基本是短路与 && ,效率高

||和|基本规则

名称语法特点
短路或|| 条件1||条件2 两个条件只要有一个成立,结果为true,否则为false
逻辑或| 条件1|条件2 两个条件只要有一个成立,结果为true,否则为false
  • || 和 | 使用区别

  1. ||短路或:如果第一个条件为true,这第二个条件不会判断,最终结果为true,效率高

  2. | 逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低

  3. 开发中,我们基本使用短路或 ||

取反基本规则

名称语法特点
!非(取反) !条件 如果条件本身成立,结果为false,否则为true
  • 案例演示

 boolean x = true;
 boolean y = false;
 short z = 46;
 if((z++ == 46) && (y = true)) {
     z++;
 }
 if((x = false)|| (++z == 49)) {
     z++;
 }
 System.out.println("z=" + z);//z = 50

赋值运算符

  • 介绍

    赋值运算符就是将某个运算后的值,赋给指定的变量。

     

  • 赋值运算符的分类

    • 基本赋值运算符 = int a = 10;

    • 复合赋值运算符

      +=,-=,*=,/=, %=等,重点学习一个 +=,其他的使用是一个道理

      a += b [等价于 a = a + b]

  • 赋值运算符特点

  1. 运算顺序从右往左 int num = a + b + c;

  2. 赋值运算符的左边,只能是变量,右边可以是变量,表达式,常量值。例如:int num = 20;int num2 = 78 * 34 - 10;int num3 = a;

  3. 复合赋值运算符等价于下面的效果。

    比如: a+=3;等价于 a = a+3;其他类推

  4. 复合赋值运算符会进行强制类型转换 byte b = 2(等价于 b = (byte)(b + 2)),b++;

三元运算符

  • 基本语法

条件表达式?表达式1:表达式2;

运算规则

 1. 如果条件表达式为true,运算后的结果是表达式1;
 1. 如果条件表达式为false,运算后的结果为表达式2;

口诀:【一灯大师:一真大师】

  • 使用细节

  1. 表达式1和表达式2要为可以赋给接收变量的类型(或者可以自动转换)。

  2. 三元运算符可以转成if--else语句

 int res = a > b ? a++ : --b;

等价于 if(a > b) res = a++; else res = --b;

运算符的优先级

标识符的命名规则和规范

  • 标识符概念

  1. Java对各种变量、方法和类等命名时使用的字符序列称为标识符

  2. 凡是可以自己起名字的地方都叫标识符 int num1 = 90;

  • 标识符的命名规则(必须遵守)【背诵下来】

  1. 由26个英文字母大小写,0~9,_或者$组成

  2. 数字不可以开头。int 3ab = 1;//错误

  3. 不可以使用关键字和保留字,但能包含关键字和保留字。

  4. Java中严格区分大小写,长度无限制。 int totalNum = 10; int n = 90;

  5. 标识符不能包含空格。 int a b = 90;//错误

  • 标识符命名规范[更加专业]

  1. 包名:多单词组成时所有字母都小写:aaa.bbb.ccc//比如:com.hsp.crm

  2. 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz[大驼峰],比如:TankShortGame

  3. 变量名、方法名:多单词组成时,第一个单词的首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz[小驼峰,简称驼峰法] 比如:tankShotGame

  4. 常量名:所有字母都大写。多个单词时每个单词用下划线连接:XXX_YYY_ZZZ,比如:定义一个所得税率 TAX_RATE

  5. 后面学习到类,包,接口时,要遵守以上的命名规范,更加详细的可以查看文档。

关键字

  • 关键字的定义和特点

定义:被JAVA语言赋予了特殊含义,用作专门用途的字符串(单词)

特点:关键字中所有字母都为小写

关键字

关键字2

保留字i

  • 介绍

java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用,自己命名标识符时要避免使用这些保留字: byValue、cast、future、generic、inner、operator、outer、rest、var、goto、const

键盘输入语句

  • 介绍

在编程中,需要接收用户输入的信息,就可以使用键盘输入语句来获取。

Input.java,需要一个扫描器(对象),就是Scanner

  • 步骤

  1. 导入该类的所在包,java.util.*

  2. 创建该类对象(声明变量)

  3. 调用里面功能

进制

  • 进制介绍

对于整数:有四种表示方式

  1. 二进制 :0,1,满2进1.以0b或者0B开头。

  2. 十进制:0~9,满10进1.

  3. 八进制:0-7,满8进1.以数字0开头。

  4. 十六进制:0-9以及A(10)-F(15),满16进1.以0x或者0X开头表示。此处的A-F不区分大小写。

  • 案例演示

 int n1 = 0b1010;
 int n2 = 1010;
 int n3 = 01010;
 int n4 = 0x1010;
  • 进制图示说明

进制

进制2

进制的转换(基本功)

二进制转换成十进制示例

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。

案例: 请将0b1011转成十进制的数。

0b1011 = 1 * 2的(1-1)次方 + 1 * 2的(2-1)次方 + 1 * 2的(4-1)次方 = 1 + 2 + 8 =11

八进制转换成十进制案例

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。

案例:请将0234转成十进制的数

0234 = 4* 8的0次方+3*8的一次方+2 * 8的二次方 = 4+24+128 = 156

十六进制转换成十进制示例

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。

案例:请将0x23A转换成十进制的数

0x23A = 10 * 16 ^0 + 3 * 16 ^1 + 2 * 16^2 =10 +48 + 512 = 570

十进制转换为二进制

规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。

案例:请将34转换成二进制。 34 = 0B00100010

十进制转换成八进制

规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制。

案例:请将131转成八进制 = 0203

十进制转换成十六进制

规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。

案例:请将237转换成16进制 ==》0Xed

二进制转换成八进制

规则:从低位开始,将二进制数每三位一组,转换成对应的八进制数即可。

案例:请将0b11010101转换成八进制

0b11(3)010(2)101(5) ==> 0325

二进制转换成十六进制

规则:从低位开始,将二进制数每四位一组,转换成对应的十六进制数即可。

案例:请将0b1010101转换成十六进制

0b1010101 = 0xD5

八进制、十六进制转换成二进制

八进制转换成二进制

规则:将八进制数每一位,转成对应的一个3位的二进制数即可。

案例:请将0237转换成二进制

0237 = 0b10011111

十六进制转换成二进制

规则:将十六进制数每一位,转成对应的一个4位的二进制数即可。

案例:请将0x23B转换成二进制

0x23B =0b001000111011

二进制在运算中的说明

  1. 二进制是逢2进位的进位制,0、 1是基本算符。

  2. 现代的电子计算机技术全部采用的二进制,因为它只是用0和1两个数字符号,非常简单方便,易于用电子方式实现。计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binary)数用0和1两个数字以及其组合来表示任何数。进位的规则是逢2进1,数字1在不同的位上代表不同的值,按从右至左的次序,这个值以二倍递增。

原码、反码、补码(重点 难点)

网上对原码,反码,补码的解释太过复杂,下面精简的内容要背诵下来

对于有符号的而言:

  1. 二进制的最高位是符号位:0表示正数,1表示负数(0->0 1-->-)

  2. 正数的原码,反码,补码都一样(三码合一)

  3. 负数的反码 = 它的原码符号位不变,其他位取反(0 -->1 1--> 0)

  4. 负数的补码 = 它的反码 + 1; 负数的反码 = 负数的补码 - 1

  5. 0的反码、补码都是0

  6. Java没有无符号数,换言之,Java中的数都是有符号的

  7. 在计算机运算的时候,都是以补码的方式来运算的

  8. 当我们看运算结果的时候,要看他的原码(!!)

位运算符

  • Java中有7个位运算(&、|、^、~、>>、<<和>>>)

  • 分别是按位与&、按位或|、按位异或^、按位取反~,它们的运算规则是:

  1. 按位与&:两位全为1,结果为1,否则为0

  2. 按位或|:两位有一个为1,结果为1,否则为0

  3. 按位异或^:两位一个为0,一个为1,结果为1,否则为0

  4. 按位取反~:0--》1 1--》0

  • 还有3个位运算符>>、<<和>>>,运算规则:

  1. 算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位

  2. 算术左移<<:符号位不变,低位补0

  3. 逻辑右移>>>也叫无符号右移,运算规则是:低位溢出,高位补0

  4. 特别说明:没有<<<符号

  • 案例演示

  • int a = 1 >> 2//1=>00000001--->00000000本质1/2/2 = 0

  • int c = 1 << 2//1=>00000001---->00000100本质1 * 2 * 2 = 4

计算下列表达式的结果

-10.5 % 3 = ?

//a % b 当a是小数时,公式 = a - (int) a / b * b = -10.5 - (-10) / 3 * 3 = -10.5 + 9 = -1.5

//注意:有小数运算,得到结果是近似值

标签:转换成,false,二进制,运算符,int,java,true,第四章
来源: https://www.cnblogs.com/xiaozhoustudy/p/16436127.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有