Java学习笔记(三)算术运算符、逻辑运算符、四种进制介绍

Hi i,m JinXiang


⭐ 前言 ⭐

本篇文章主要介绍Java算术运算符、逻辑运算符、四种进制介绍详细使用以及部分理论知识


🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁

🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言


目录

运算符介绍

1、算数运算符

1.1、算数运算符预览

1.2、算数运算符的使用

1.3、算数运算符使用注意细节

1.4、自增自减练习题

1.5、练习题

2、关系运算符(比较运算符)

2.1、关系运算符预览

2.2、关系运算符的使用

2.3、练习题

3、逻辑运算符

3.1、逻辑运算符预览

3.2、逻辑运算规则

3.3、短路与“ && ”和逻辑与“ & ”的区别

3.4、“ || ”和“ | ”的使用区别

3.5、“ !”取反的使用规则

3.6、“ ^ ”逻辑异或的使用规则

4、赋值运算符

4.1、基本赋值运算符

4.2、复合赋值运算符

4.3、赋值运算符特点

5、三元运算符

5.1、基本语法

5.2、三元运算符运算规则

5.3、三元运算符使用

5.4、使用细节

5.5、三元运算符使用细节

5.6、练习题

6、运算符优先级     

6.1、运算符优先级预览

6.2、运算符的简单分类排序

7、标识符的命名规则和规范

7.1、标识符概念

7.2、标识符的命名规则(必须遵守)

7.3、标识符的命名规范

7.4、Java中的关键字

8、如何在键盘中输入语句

使用步骤:

9、四种进制介绍

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

9.2、代码演示四种进制

9.3、进制的图示

9.4、进制的转换(基本功)

9.4.1、第一组

9.4.2、第二组

9.4.3、第三组

9.4.4、第四组

10、二进制在运算中的说明

10、源码、反码、补码(重点 难点)

11、位运算符


运算符介绍

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

1、算数运算符

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

1.1、算数运算符预览

1.2、算数运算符的使用

  • /
  • 取模(取余): n  %
    • 在%中的本质 看一个公式 a% b = a- a / b * b
  • 自增:++
    • 作为独立的语句使用:前++和后++都完全等价于 i = i + 1
    • 作为表达式使用(重)
      • 前++:++i 先自增后赋值
      • 后++:i++ 先赋值后自增
  • 自减:- -
  • 作为独立的语句使用:前--和后--都完全等价于 i = i - 1
  • 作为表达式使用(重)
    • 前- -:- -i 先自减后赋值
    • 后- -:i- - 先赋值后自减

1.3、算数运算符使用注意细节

1.4、自增自减练习题


//测试输出
inti1=10;
inti2=20;
inti=i1++;

System.out.print("i="+i);//10
System.out.println("i2="+i2);//20 i=--i2;

System.out.print("i="+i);//19
System.out.println("i2="+i2);//19

1.5、练习题

题目:

步骤:

结果:

2、关系运算符(比较运算符)

  • 1、关系运算符的结果都是boolean型,只有true和false两种结果
  • 2、关系表达式 经常用在if结构的条件中或循环结构的条件中

2.1、关系运算符预览

2.2、关系运算符的使用

  • 相当于:==
  • 不等于:!
  • 小于:<
  • 大于:>
  • 小于等于:<=
  • 大于等于:>=
  • 检查是否是类:instanceof

2.3、练习题

3、逻辑运算符

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

3.1、逻辑运算符预览

  :分为两组学习

  • 1、短路与 && 短路或 || 取反!
  • 2、逻辑与 & 逻辑或 |  和  ^    逻辑异或

3.2、逻辑运算规则

3.3、短路与“ && ”和逻辑与“ & ”的区别

  • //对于&&短路与而言,如果第一个条件为false,后面的条件不再判断
  • //对于&逻辑与而言,如果第一个条件为false,后面的条件仍然会判断
  • && 短路与:如果第一个条件为 false ,则第二个条件不会判断,最终结果为 false ,效率高
  • &逻辑与:不管第一个条件是否为 false ,第二个条件都要判断,效率低
  • 扩展:开发中,我们使用的基本是使用短路与 &&, 效率高

3.4、“ || ”和“ | ”的使用区别

  • ||短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高
  • |逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低
  • 扩展:开发中,我们基本使用   ||

3.5、“ !”取反的使用规则

  • 非(取反):“ ! ”  !条件   如果条件本身成立,结果为false,否则为true

3.6、“ ^ ”逻辑异或的使用规则

  • a^b:叫逻辑异或
  • ab不同时,则结果为true,否则为false
  • ^逻辑异或,System.out.println((4<1)^(6>3));//?

4、赋值运算符

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

4.1、基本赋值运算符

  • “ = ”   int a  = 10

4.2、复合赋值运算符

  • +=-=*=/=%=,重点解释一个+=,其它的使用是一个道理
  • “ += ”   a += b;    [等价a=a+b;]

4.3、赋值运算符特点

  • 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+=3: b++:

5、三元运算符

5.1、基本语法

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

5.2、三元运算符运算规则

  • 1、如果条件表达式为true,运算后的结果是表达式1
  • 2、如果条件表达式为false,运算后的结果是表达式2
  • 口诀:[一灯大师:一真大师]

5.3、三元运算符使用

int a=10;
int b=99;
//解读
//1.a>b为false
//2.返回b--,先返回b的值,然后在b-1 //3.返回的结果是99
int result = a>b? a++ : b--;
System.out.println("result="+result);
System.out.println("a="+a);
System.out.println("b="+b);

5.4、使用细节

  • 1、表达式1和表达式2要为可以赋给接收变量的类型(或可以自动转换)
  • 2、三元运算符可以转成if--else语句
  • int res = a > b ? a++: --b;
    if ( a > b ) res = a++;
    else res = --b;

5.5、三元运算符使用细节

  • //表达式1和表达式2要为可以赋给接收变量的类型
  • //(或可以自动转换/或者强制转换)
    inta=3;
    intb=8;
    intc=a>b?(int)1.1:(int)3.4;//可以的
    
    doubled=a>b?a:b+3;//可以的,满足int->double

5.6、练习题

1、题目:实现三个数的最大值
2、分析
// 案例:实现三个数的最大值
int n1 = 553;
int n2 = 33;
int n3 = 123;
// 思路
//1. 先得到 n1 n2 中最大数 , 保存到 max1
//2. 然后再求出 max1 n3 中的最大数,保存到 max2
3、编写
int max1 = n1 > n2 ? n1 : n2;
int max2 = max1 > n3 ? max1 : n3;
System.out.println(" 最大数 ="+max2);
4、结果

 最大数 = 553

6、运算符优先级     

  • 1、运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。
    • 如下表,上一行运算符总优先于下一行。
  • 2、只有单目运算符、赋值运算符是从右向左运算的。

6.1、运算符优先级预览

6.2、运算符的简单分类排序

  • 1、(),{}等
  • 2、单目运算符
  • 3、算数运算符
  • 4、位移运算符
  • 5、比较运算符
  • 6、逻辑运算符
  • 7、三元运算符
  • 8、赋值运算符

7、标识符的命名规则和规范

7.1、标识符概念

  • 1. Java 对各种变量、方法和类等命名时使用的字符序列称为标识符
  • 2.凡是自己可以起名字的地方都叫标识符int num1 = 90;

7.2、标识符的命名规则(必须遵守)

  • 1、由26个英文字母大小写,0-9,或$组成
  • 2、数字不可以开头。int 3ab = 1;//错误
  • 3、不可以使用关键字和保留字,但能包含关键字和保留字。
  • 4、 Java中严格区分大小写,长度无限制。int totalNum = 10; int n = 90;
  • 5、标识符不能包含空格。intab = 90;

7.3、标识符的命名规范

  • 1、包名:多单词组成时所有字母都小写: aaa.bbb.ccc //比如com.hsp.crm
  • 2、类名、接口名:多单词组成时,所有单词的首字母大写: XxxYyyZzz 【大驼峰】
    • 比如:TankShotGame特点:关键字中所有字母都为小写
  • 3、变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个
    • 单词首字母大写: xxxYyyZzz 【小驼峰】
    • 比如: tankShotGame
  • 4、常量名:所有字母都大写。多单词时每个单词用下划线连接: XXX_YYY_ZZZ
    • 比如:定义-个所得税率TAX_RATE

7.4、Java中的关键字

  • 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
  • 特点:关键字中所有字母都为小写

8、如何在键盘中输入语句

●介绍
在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。
Input,java ,需要一个扫描器(对象),就是Scanner

使用步骤:
  • 1)导入该类的所在包,java.util.*
  • 2)创建该类对象(声明变量)
  • 3)调用里面的功能

9、四种进制介绍

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

  • 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不区
  • 分大小写。

9.2、代码演示四种进制

//演示四种进制
//
publicclassBinaryTest{
publicstaticvoidmain(String[]args){
    //n1二进制
    int n1 = 0b1010;//n210进制
    int n2 = 1010;
    //n38进制
    int n3 = 01010;
    //n416进制
    int n4 = 0X10101;
    System.out.println("n1="+n1);
    System.out.println("n2="+n2);
    System.out.println("n3="+n3);
    System.out.println("n4="+n4);
    System.out.println(0x23A);
    }
}

9.3、进制的图示

9.4、进制的转换(基本功)

9.4.1、第一组
  • 二进制转十进制
    • 规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数- 1)次方, 然后求和。
    • 案例:把0b1011 转成十进制
    • 0b1011 = 1 * 2的(1-1)次方 + 1 * 2 的(2-1)次方 + 0 * 2的(3-1)次方 + 1 * 2 的(4-1)次方的方法 = 计算结果:(1 + 2 + 0 + 8 = 11)
  • 八进制转十进制
    • 规则:从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。
    • 案例:把0234转成十进制
    • 0234 = 4 * 8^ 0 + 3 * 8^1  + 2 * 8^2  = 计算结果(4+24+128=156)
  • 十六进制转十进制
    • 规则:从最低位(右边)开始,将每个位上的数提取出来, 乘以16的(位数-1)次方,然后求和。
    • 案例:把0x23A转成十进制
    • 0x23A = 10 * 16^0 + 3 * 16^1 + 2 * 16^0  = 计算结果(10 + 48 + 512 = 570)
       
9.4.2、第二组
  • 十进制转二进制
    • 规则:将该数不断除以 2, 直到商为 0为止,然后将每步得到的余数倒过来,就是对应的二进制
    • 案例:把 34转成二进制=>0B100010
    • 计算结果是:0B100010
  • 十进制转八进制
    • 规则:将该数不断除以 8, 直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的八进制
    • 案例:请将 131 转成八进制 =>0203
    • 计算结果是:0203
  • 十进制转十六进制
    • 规则:将该数不断除以 16 ,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的十六进制。
    • 案例:请将 237 转成十六进制 =>0xED
9.4.3、第三组
  • 二进制转八进制
    • 规则:从低位开始 , 将二进制数每三位一组,转成对应的八进制数即可。
    • 案例:请将ob11010101 转成八进制
    • ob11(3)010(2)101(5)  => 0325
  • 二进制转十六进制
    • 规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可。
    • 案例:请将ob11010101 转成十六进制
    • ob1101(D)0101(5) = 0xD5
9.4.4、第四组
  • 八进制转二进制
    • 规则:将八进制数每 1 位,转成对应的一个3位的二进制数即可。
      案例:请将 0237 转成二进制
    • 02(010) 3(011)  7(111) = 0b010011111
  • 十六进制转二进制
    • 规则:将十六进制数每 1 位,转成对应的 4 位的一个二进制数即可。
    • 案例:请将0x23B转成二进
    • 0x2(0010)  3(0011)  B(1011)  = 0b001000111011

10、二进制在运算中的说明

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

10、源码、反码、补码(重点 难点)

简介:

  • 1、二进制的最高位是符号位: 0表示正数,1表示负数(口诀: 0- > 0 1- > -)
  • 2、正数的原码,反码,补码都一样(三码合一)
  • 3、负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)
  • 4、负数的补码=它的反码+1 ,负数的反码=负数的补码- 1
  • 5、0的反码,补码都是0
  • 6、java没有无符号数,换言之,java中的数都是有符号的
  • 7、在计算机运算的时候,都是以补码的方式来运算的
  • 8、当我们看运算结果的时候,要看他的原码

11、位运算符

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

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

  • 按位与&        :        两位全为1,结果为1,否则为0
  • 按位或 |        :        两位有一个为1,结果为1,否则为0
  • 按位异或^     :        两位一个为0,一个为1,结果为1,否则为0
  • 按位取反~     :        0->1 , 1->0

看完点赞~人美心善

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值